#!/bin/bash
# new user script

# vraag om user als niet op commandline
if test "$1" = ""; then
  read -p "Username: " user
else
  user=$1
  echo "Username: $user"
fi
if test "$user" = ""; then
  echo geen user.
  exit 1
fi

# test of user al bestaat, wellicht mooier?
if ! test "$(id -u $user 2>/dev/null)" = ""; then
   echo "user $user bestaat al, ik stop"
   exit 2
fi

# paswoord
read -p "Password: " -ei `pwgen -s 10` password

# geef de naam van de klant
read -p "Naam van de klant: " klant

# ssh user?
read -p "User toevoegen als user met ssh-toegang? ('ssh'=ssh toegang, return=sftp-only): " mode
if test "$mode" = "ssh"; then
  echo "fullssh user"
else
  echo "sftp-only user"
  ssh="sftp-only"
fi

# controlevraag
read -p "Is bovenstaande correct? [J/n] " vraag
if test "$vraag" = ""; then vraag="j"; fi
if test "$vraag" = "J"; then vraag="j"; fi
if test "$vraag" = "y"; then vraag="j"; fi
if ! test "$vraag" = "j"; then
  exit 3
fi

# gebruiker aanmaken, shell bepalen, lid maken van groepen
useradd -s /bin/bash $user

# Onderstaande is nodig omdat Apache anders homedir niet binnenkomt
# alternatief is apache ook group van user te geven, maar heeft weer andere implicaties (vooral voor AWstats).
adduser --quiet $user $user > /dev/null

# paswoord toevoegen
echo $user:$password | chpasswd

# directory aanmaken, altijd als sftp-user
mkdir /home/$user
mkdir /home/$user/extra
mkdir /home/$user/.ssh
mkdir /home/$user/www
mkdir /home/$user/log
touch /home/$user/www/index.html
chown -R $user:$user /home/$user
chown root:$user /home/$user
chown root:$user /home/$user/www
chown root:$user /home/$user/log
chmod g+rwxs /home/$user/www  # groep overerven
chmod g+s /home/$user/extra
chmod g+s /home/$user
chmod 750 /home/$user  # geen toegang voor others
chmod +t /home/$user   # sticky bit, zodat root-bestanden niet verwijderd mogen worden
adduser --quiet $user sftp-only > /dev/null

# switch to fullssh?
if test "$mode" = "ssh"; then
  /usr/local/sbin/fullssh $user ssh
fi

# log
logfile=/root/ng.log
date >> $logfile
echo "Create user account:" >> $logfile
echo "Username: $user" >> $logfile
echo "Paswoord: $password" >> $logfile
echo "Klant: $klant" >> $logfile
echo "Done."
echo

# vragen website
read -p "Wil je ook een website aanmaken? [J/n] " vraag
if test "$vraag" = ""; then vraag="j"; fi
if test "$vraag" = "J"; then vraag="j"; fi
if test "$vraag" = "y"; then vraag="j"; fi
if test "$vraag" = "j"; then
  /usr/local/sbin/nw $user
fi

# vragen database
read -p "Wil je ook een database aanmaken? [J/n] " vraag
if test "$vraag" = ""; then vraag="j"; fi
if test "$vraag" = "J"; then vraag="j"; fi
if test "$vraag" = "y"; then vraag="j"; fi
if test "$vraag" = "j"; then
  /usr/local/sbin/ndb $user
fi

# vragen Wordpress
read -p "Wil je Wordpress installeren? [J/n] " vraag
if test "$vraag" = ""; then vraag="j"; fi
if test "$vraag" = "J"; then vraag="j"; fi
if test "$vraag" = "y"; then vraag="j"; fi
if test "$vraag" = "j"; then
  /usr/local/sbin/wpinstall $user
else
  rm /tmp/$user >/dev/null 2>&1
fi

echo "Klant = $klant" | mail -s "Webspace $user aangemaakt op hosting" boekhouding@vandervlis.nl
