我正在尝试配置 VSFTPD,让每个用户都有一个 PublicFTP 目录,因为所有用户都是 chrooted,但他们仍然需要一个中央 FTP 目录。我在每个本地系统用户中创建了这个目录,并在中创建了共享目录,/var/www/public_ftp
所有权为“Developers”组,并将 chmodded 设置为 775。下一步是添加条目/etc/fstab
。我甚至重新启动了服务器和 vsftpd 服务。
当我以开发人员组用户的身份登录并在其 PublicFTP 目录中创建文件时,该文件会创建并显示在/var/www/public_ftp
; 下,就像在任何其他用户的 PublicFTP 目录中一样。现在,如果我通过 FTP 登录并尝试使用 STOR 存储文件甚至上传,我会收到权限被拒绝的消息。
drwxrwxr-x. 2 root Developers 4096 Mar 28 10:49 PublicFTP /home/<user>/PublicFTP
drwxrwxr-x. 2 root Developers 4096 Mar 28 10:49 public_ftp /var/www/public_ftp
groupmems -g Developers --list > the list contains the <user>.
/etc/vsftpd/vsftpd.conf 的内容
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_anble=YES
tcp_wrappers=YES
use_localtime=YES
chroot_local_user=YES
/etc/fstab 的内容
/var/www/public_ftp /home/<user>/PublicFTP none bind 0 0
示例场景:
-. 使用 登录到服务器。
-.cd /home//PublicFTP
-. 触摸 Hi.txt
-。 ls-la
-rw-r--r--. 1 <user> users 0 Mar 28 11:05 Hi.txt
-.cd /var/www/public_ftp -.ls -la
-rw-r--r--. 1 <user> users 0 Mar 28 11:05 Hi.txt
-. 从客户端机器打开一些 FTP 应用程序并连接到 FTP 服务器。
-. 使用以下方式登录
-. 导航至 PublicFTP
-. 目录为空。有点搞笑,因为在服务器上它是清晰可见的。
-. 尝试复制一个文件:
An error occured copying a file to the FTP Server. Make sure you have permission to put files on the server.
Details:
200 Switching to binary mode.
227 Entering Passive mode (10,232,118,108,90,133).
553 Could not create file.
日志文件的内容:
Mon Mar 31 09:52:07 2014 [pid 17629] [<user>] OK LOGIN: Client "xxx.xxx.xxx.xxx"
Mon Mar 31 09:52:07 2014 [pid 17634] [<user>] FAIL DELETE: Client "xxx.xxx.xxx.xxx", "/PublicFTP/proxy.txt"