J'utilise Ubuntu 13.10
mit vsftpd
et en essayant de limiter un utilisateur FTP à son répertoire respectif.
Pour cela, j'utilise ce qui suit
Mon fichier vsftpd.conf :
local_enable=YES
write_enable=YES
local_umask=022
secure_chroot_dir=/var/run/vsftpd/empty
nopriv_user=vsftpd
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/var/www/sites/$USER
chroot_local_user=YES
hide_ids=YES
seccomp_sandbox=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH
J'ai configuré pam.d/vsftpd
Créez des utilisateurs virtuels pour FTP comme suit :
htpasswd -cd /etc/vsftpd/ftpd.passwd USERNAME
useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
mkdir /var/www/sites/USERNAME
chmod -w /var/www/sites/USERNAME
mkdir /var/www/sites/USERNAME/www
chmod -R 755 /var/www/sites/USERNAME/www
chown -R vsftpd:nogroup /var/www/sites/USERNAME
L'installation est destinée à faire fonctionner des sites web PHP simples, et la configuration ci-dessus fonctionne bien, et lorsque je suis connecté, je ne peux voir que mon répertoire.
Le problème est que lorsque j'ai un fichier comme :
<?php
exec('cat /var/www/SOME_OTHER_USER_FILE', $output);
print_r($output);
Il affiche le contenu des fichiers qui se trouvent en dehors du répertoire de l'utilisateur. Comment éviter cela ?
Note : Les permissions du répertoire sont les suivantes :
drwxr-xr-x 2 vsftpd nogroup 4096 Apr 5 04:55 .
dr-xr-xr-x 3 root root 4096 Mar 23 10:00 ..
-rw-r--r-- 1 vsftpd nogroup 113 Apr 5 04:44 index.php
Comment éviter qu'un utilisateur ne navigue en dehors du répertoire qui lui a été attribué ? J'ai essayé de chercher, mais je n'ai pas trouvé de solution.