addUserSite.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #!/bin/sh
  2. # bachir soussi chiadmi
  3. echo '\033[35m
  4. __ _______ __________
  5. / / / / ___// ____/ __ \
  6. / / / /\__ \/ __/ / /_/ /
  7. / /_/ /___/ / /___/ _, _/
  8. \____//____/_____/_/ |_|
  9. \033[0m'
  10. echo "\033[35;1mCreate new user (you will be asked a user name and a password) \033[0m"
  11. sleep 3
  12. while [ "$user" = "" ]
  13. do
  14. read -p "Enter user name: " user
  15. if [ "$user" != "" ]; then
  16. read -p "is user $user correcte [y|n] " validated
  17. if [ "$validated" = "y" ]; then
  18. break
  19. else
  20. user=""
  21. fi
  22. fi
  23. done
  24. adduser "$user"
  25. mkdir /home/$user/logs
  26. mkdir /home/$user/public_html
  27. mkdir /home/$user/backups
  28. chmod -w /home/"$user"
  29. echo '\033[35m
  30. __ __
  31. _ __/ /_ ____ _____/ /_
  32. | | / / __ \/ __ \/ ___/ __/
  33. | |/ / / / / /_/ (__ ) /_
  34. |___/_/ /_/\____/____/\__/
  35. \033[0m'
  36. echo "\033[35;1mVHOST install \033[0m"
  37. while [ "$_host_name" = "" ]
  38. do
  39. read -p "enter a hostname ? " _host_name
  40. if [ "$_host_name" != "" ]; then
  41. read -p "is hostname $_host_name correcte [y|n] " validated
  42. if [ "$validated" = "y" ]; then
  43. break
  44. else
  45. _host_name=""
  46. fi
  47. fi
  48. done
  49. cp "$_cwd"/assets/example.org.conf /etc/apache2/sites-available/"$_host_name".conf
  50. sed -ir "s/example\.org/$_host_name/g" /etc/apache2/sites-available/"$_host_name".conf
  51. #set proper right to user will handle the app
  52. chown -R "$user":admin /home/"$user"/public_html
  53. chown -R "$user":admin /home/"$user"/logs
  54. chown -R "$user":admin /home/"$user"/backups
  55. chmod -R g+wr /home/"$user"/public_html
  56. chmod -R g+wr /home/"$user"/logs
  57. mkdir -p /var/www/"$_host_name"
  58. ln -s /home/"$user"/public_html /var/www/"$_host_name"/public_html
  59. ln -s /home/"$user"/logs /var/www/"$_host_name"/logs
  60. #activate the vhost
  61. a2ensite "$_host_name".conf
  62. #restart apache
  63. service apache2 restart
  64. echo "\033[92;1mvhost $_host_name configured\033[Om"
  65. # todo add mysql user and database
  66. echo '\033[35m
  67. __ ___ __
  68. / |/ /_ ___________ _/ /
  69. / /|_/ / / / / ___/ __ `/ /
  70. / / / / /_/ (__ ) /_/ / /
  71. /_/ /_/\__, /____/\__, /_/
  72. /____/ /_/
  73. \033[0m'
  74. echo "\033[35;1mMysql database \033[0m"
  75. while [ "$_dbname" = "" ]
  76. do
  77. read -p "enter a database name ? " _dbname
  78. if [ "$_dbname" != "" ]; then
  79. read -p "is database name $_dbname correcte [y|n] " validated
  80. if [ "$validated" = "y" ]; then
  81. break
  82. else
  83. _dbname=""
  84. fi
  85. fi
  86. done
  87. passok=0
  88. while [ "$passok" = "0" ]
  89. do
  90. echo -n "Write database password for $user"
  91. read passwda
  92. echo -n "confirm password"
  93. read passwdb
  94. if [ "$passwda" = "$passwdb" ]; then
  95. $_pswd=$passwda
  96. passok=1
  97. else
  98. echo "pass words don't match, please try again"
  99. fi
  100. done
  101. # mysql> create user '$_dbname'@'localhost' identified by '$_pswd';
  102. # mysql> create database $_dbname;
  103. # mysql> grant all privileges on esadhar_eval.* to 'esadhar_eval'@'localhost';
  104. # mysql> flush privileges;