Soluzione 1:
Risposta completa che ha risolto la mia domanda per tutti gli altri che cercano una procedura dettagliata...
Installa vsftpd
utilizzandolo come guida.
- Crea utente con
useradd [user_name]
. - Crea la password dell'utente con
passwd [user_name]
. (Ti verrà richiesto di specificare la password). - Crea una directory FTP in
/var/ftp
e poi esegui il bind alla directory 'home' che desideri specificare per questo utente conmount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/
. -
Cambia la home directory dell'utente con
usermod -d /var/ftp/custom_name/ user_name
In
/etc/vsftpd/vsftpd.conf
, assicurati che tutti i seguenti elementi siano impostati:-- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd.chroot_list
Elenca solo gli utenti nel vsftpd.chroot_list
file se vuoi che abbiano pieno accesso a qualsiasi punto del server. Non elencandoli in questo file, stai dicendo di limitare tutto vsftpd
utenti nella loro home directory specificata.
In altre parole (per riferimento):-
- significa che per impostazione predefinita, TUTTI gli utenti vengono sottoposti a chroot tranne gli utenti nel file...
- chroot_local_user=YES
- chroot_list_enable=YES
- significa che per impostazione predefinita, SOLO gli utenti nel file vengono sottoposti a chroot...
- chroot_local_user=NO
- chroot_list_enable=YES
Soluzione 2:
Per me non ha funzionato anche dopo quanto sopra. C'era un local_root già impostato su una directory, e qualunque cosa io faccia, la directory dell'utente non è stata imprigionata. Finalmente funziona solo dopo essere stata modificata
chroot_local_user=SÌ
E seguendo la procedura
- vi /etc/vsftpd.conf
- Aggiungi la riga 'user_config_dir=/etc/vsftpd_user_conf' (senza virgolette)
- mkdir /etc/vsftpd_user_conf;
- cd /etc/vsftpd_user_conf
- vi nome_utente;
- Inserisci la riga 'local_root=/srv/ftp/user_name'
Solo i miei due centesimi se qualcun altro ha avuto lo stesso problema.