J'utilise vsftpd comme serveur ftp sur mon linux (rasbian), je me connecte à la machine en tant qu'utilisateur root.
Je voudrais être toujours verrouillé à utiliser uniquement/var/www, comment puis-je configurer vsftpd conf pour y parvenir?
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 pour un 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 personnel de l'utilisateur, vous pouvez utiliser:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Générez automatiquement un répertoire personnel pour chaque utilisateur virtuel, sur la base d'un modèle. Par exemple, si le répertoire personnel de l'utilisateur réel spécifié via guest_username est/ftphome/$ USER et que user_sub_token est défini sur $ USER, alors lorsque le test de l'utilisateur virtuel se connecte, il se retrouve (généralement chroot () 'ed) dans le répertoire/ftphome/test. Cette option prend également effet si local_root contient user_sub_token.
Créez un répertoire et configurez les autorisations:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Une fois redémarré 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.
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 constaté que nous ne pouvions pas chrooter vers un répertoire racine (dans ce cas, /home/$USER/www-data
) disposant d'un accès en écriture. Je supprime donc l'accès en écriture avec:
# chmod a-w /home/$USER/www-data
REMARQUE: changer $USER
avec votre utilisateur.
Vérifiez les options chroot
dans vsftpd.conf
et créez un utilisateur distinct pour lui dont homedir est défini sur /var/www
.