限制VSFTPD虚拟用户到相应的目录

我正在使用Ubuntu 13.10vsftpd ,并试图限制一个FTP用户到他们各自的目录。

为此,我使用以下内容

我的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 

我为FTPconfiguration了pam.d/vsftpd创build虚拟用户,如下所示:

 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 

设置如果运行简单的PHP网站,上述设置工作正常,当连接时,我只能查看我的目录。

问题是当我有一个像这样的文件:

 <?php exec('cat /var/www/SOME_OTHER_USER_FILE', $output); print_r($output); 

它打印在用户目录之外的文件的内容。 我怎样才能避免这一点?

注意:目录的权限如下:

 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 

如何避免用户在指定目录之外浏览? 我试过寻找它,但似乎无法find任何解决scheme。

这不是一个FTP的问题,但一个PHP的问题,尝试在您的虚拟主机中使用

 php_value open_basedir "/dir_of_your_virtualhost 

在这个你只能在该目录下工作