chciałbym stworzyć skrypt do automatycznego tworzenie użytkownika sftp, użytkownik ten ma możliwość łączenia się z serwerem tylko przez sftp oraz nie posiada wglądu do katalogów za wyjątkiem swojego katalogu.
Lista czego oczekuję:
- Sprawdzenie czy użytkownik uruchamiający jest superuser lub ma prawa przez sudo,
- Sprawdzenie czy grupa sftp istnieje, jeżeli nie należy ją utworzyć,
- Wprowadzenie użytkownika z klawiatury, stworzenie nowego użytkownika przez adduser bez możliwości zmiany katalogów oraz innego typu połączeń jak tylko z sftp,
- Wprowadzenie MAC adresu dla danego użytkownika i dodanie do zasad frewall'a,
- Stworzenie certyfikatu po którym będzie się łączył dany użytkownik,
- Przesłanie maila z informacjami: nazwa użytkownika, treść maila oraz plik dołączony jako certyfikat prywatny.
Kod: Zaznacz cały
#!/bin/bash
#Check user acess
if [ "$EUID" -ne 0 ]
then echo "Please run as superuser or sudo"
exit
fi
#Check is sftp group exist
getent group sftp || groupadd sftp
echo "Please give name of new user:"
read -r USER
#User exists ?
if id "$USER" >/dev/null 2>&1; then
echo "User: $USER exists"
exit
fi
HOME_PATH="/home/$USER"
SSH_PATH="$HOME_PATH/.ssh"
ssh-keygen -b 4096 -f "$USER"
"$SSH_PATH"/id_rsa.pub > ~"$USER"/.ssh/authorized_keys
rm "$SSH_PATH"/id_rsa.pub
exit