Accesso non chroot
Se non si dispone di una configurazione del server FTP e si ha la certezza che l'utente effettuerà l'accesso, per non cercare troppo nel proprio server, sarei invece propenso a fornire loro un account a SFTP nel sistema.
Il wiki di CentOS mantiene un semplice howto intitolato: Semplice configurazione SFTP che lo rende abbastanza indolore.
Dico che è indolore perché devi letteralmente creare l'account e assicurarti che il firewall consenta il traffico SSH, assicurati che SSH il servizio sia in esecuzione e il gioco è fatto.
Se sshd
non è già in esecuzione:
$ /etc/init.d/sshd start
Per aggiungere un utente:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
Al termine dell'account:
$ sudo userdel -r userX
Accesso chroot
Se invece vuoi limitare questo utente a una directory designata, il server SFTP incluso con SSH (openssh) fornisce una configurazione che lo rende anche facile da abilitare. È un po 'più di lavoro ma non troppo. I passaggi sono illustrati qui in questo tutorial intitolato: Come installare Chroot SFTP in Linux (Consenti solo SFTP, non SSH) .
Apporta queste modifiche al tuo /etc/ssh/sshd_config
file.
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Ora dovrai creare l'albero della directory chroot in cui questo utente verrà bloccato.
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
Le autorizzazioni dovrebbero essere le seguenti:
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
Le directory di livello superiore come questa:
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
Non dimenticare di riavviare il sshd
server:
$ sudo service sshd restart
Ora crea l'account userX:
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
Puoi verificare che l'account sia stato creato correttamente:
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
Al termine dell'account, eliminalo nello stesso modo sopra:
$ sudo userdel -r userX
... e non dimenticare di rimuovere le modifiche al file di configurazione che abbiamo apportato sopra, quindi riavviare sshd
per renderle nuovamente attive.