Réponses:
Assurez-vous que la ligne suivante existe
chroot_local_user=YES
Définissez le répertoire HOME de l'utilisateur sur /var/www/
, si vous souhaitez modifier l'utilisateur existant, vous pouvez utiliser:
usermod --home /var/www/ username
puis définissez l'autorisation requise sur /var/www/
user_sub_token
Si vous ne souhaitez pas modifier le répertoire de base de l'utilisateur, vous pouvez utiliser:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Générer automatiquement un répertoire de base pour chaque utilisateur virtuel, basé sur un modèle. Par exemple, si le répertoire de base de l'utilisateur réel spécifié par guest_username est / ftphome / $ USER et que user_sub_token est défini sur $ USER, il se terminera (généralement, par chroot ()) dans le répertoire / ftphome / test. Cette option est également active si racine_local contient user_sub_token.
Créer un répertoire et configurer les autorisations:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Une fois redémarrez vsftpd
et testez votre configuration.
Exemple de résultat de réussite:
[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
for local_root
, tel que /home/$USER/ftp
(qui chrootera les utilisateurs dans le ftp
sous - répertoire de leur répertoire personnel).
local_root
dans le répertoire personnel de l'utilisateur.
Tu peux le faire:
usermod --home /var/www/ username
J'ai utilisé la suggestion de Rahul Patil ci-dessus:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Mais je ne comprenais pas pourquoi je ne pouvais me connecter qu’avec un seul utilisateur. Ensuite, j'ai découvert que nous ne pouvions pas chrooter vers un répertoire racine (dans ce cas, /home/$USER/www-data
) doté d'un accès en écriture. Je supprime donc l'accès en écriture avec:
# chmod a-w /home/$USER/www-data
NOTE: changez $USER
avec votre utilisateur.
Vérifiez les chroot
options vsftpd.conf
et créez un utilisateur distinct pour celui-ci dont la référence est définie sur /var/www
.
chroot
optionsvsftpd.conf
et créez un utilisateur distinct pour celui-ci dont la référence est définie sur/var/www
.