Risposte:
Assicurarsi che esista la seguente riga
chroot_local_user=YES
Impostare la directory HOME dell'utente su /var/www/
, se si desidera modificare un utente esistente, è possibile utilizzare:
usermod --home /var/www/ username
quindi attiva l'autorizzazione richiesta /var/www/
user_sub_token
Se non si desidera modificare la directory Home dell'utente, è possibile utilizzare:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Generare automaticamente una home directory per ciascun utente virtuale, in base a un modello. Ad esempio, se la home directory dell'utente reale specificata tramite nome_ospite è / ftphome / $ USER e user_sub_token è impostato su $ USER, quindi quando il test dell'utente virtuale accede, finirà (di solito chroot () 'ed) in la directory / ftphome / test. Questa opzione ha effetto anche se local_root contiene user_sub_token.
Crea directory e imposta permessi:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Una volta riavviato vsftpd
e testare la configurazione.
Esempio di output di successo:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
$USER
per local_root
, come /home/$USER/ftp
(che chroot gli utenti nella ftp
sottodirectory della loro home directory).
local_root
nella home directory dell'utente reale.
Puoi farlo:
usermod --home /var/www/ username
Ho usato il suggerimento di Rahul Patil sopra:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Ma non riuscivo a capire perché ero in grado di accedere solo con un utente. Poi ho scoperto che non potevamo eseguire il chroot in una directory root (in questo caso /home/$USER/www-data
) con accesso in scrittura. Quindi rimuovo l'accesso in scrittura con:
# chmod a-w /home/$USER/www-data
NOTA: modifica $USER
con il tuo utente.
Controlla le chroot
opzioni vsftpd.conf
e crea un utente separato per esso il cui homedir è impostato su /var/www
.
chroot
opzionivsftpd.conf
e crea un utente separato per esso il cui homedir è impostato su/var/www
.