user.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. set -e
  3. if [ "$#" -ne 1 ]
  4. then
  5. echo "Usage: $0 USER"
  6. exit 1
  7. fi
  8. apt -y install zsh git zip unzip bzip2 curl wget vim pwgen
  9. if id "$1" &>/dev/null
  10. then
  11. echo "user $1 found"
  12. else
  13. echo "create user $1"
  14. useradd -m -d /workspace/home/$1 -s /bin/zsh $1
  15. fi
  16. echo 'reset password'
  17. passwd -l $1
  18. echo "$1:$(pwgen 32 1)" | chpasswd
  19. echo 'setup nginx'
  20. if [ ! -d /workspace/www/$1/htdocs ]
  21. then
  22. mkdir -p /workspace/www/$1/htdocs
  23. chown $1:$1 /workspace/www/$1/htdocs
  24. fi
  25. if [ ! -d /workspace/www/$1/logs ]
  26. then
  27. mkdir -p /workspace/www/$1/logs
  28. chown www-data:www-data /workspace/www/$1/logs
  29. fi
  30. if [ ! -f /workspace/www/$1/nginx.conf ]
  31. then
  32. cat > /workspace/www/$1/nginx.conf <<EOF
  33. server {
  34. listen 80;
  35. root /workspace/www/$1/htdocs;
  36. index index.html index.php;
  37. server_name $1.spring.wikipali.org;
  38. access_log /workspace/www/$1/logs/access.org;
  39. error_log /workspace/www/$1/logs/error.log;
  40. location / {
  41. try_files \$uri \$uri/ =404;
  42. }
  43. location ~ \.php$ {
  44. include snippets/fastcgi-php.conf;
  45. fastcgi_pass unix:/run/php/php-fpm.sock;
  46. }
  47. }
  48. EOF
  49. ln -sf /workspace/www/$1/nginx.conf /etc/nginx/sites-enabled/$1.spring.wikipali.org.conf
  50. fi
  51. echo "done($1)."
  52. exit 0