我正在尝试配置 VSFTPD,让每个用户都有一个 PublicFTP 目录,因为所有用户都已 chroot,但他们仍然需要一个中央 FTP 目录。我已在每个本地系统用户中创建了此目录,并创建了具有“Developers”组所有权的共享目录/var/www/public_ftp
,并 chmodded 为 775。下一步是在/etc/fstab
.我什至重新启动了服务器和 vsftpd 服务。
当我从 Developers 组登录到用户并在其 PublicFTP 目录中创建文件时,该文件将被创建并显示在/var/www/public_ftp
;就像在任何其他用户的 PublicFTP 目录中一样。现在,如果我通过 FTP 登录并尝试将文件上传到 PublicFTP 文件夹,我会收到权限被拒绝的消息。
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 > 列表包含 .
/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/<user>/PublicFTP $ touch 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 目录为空。有点有趣,因为在服务器上它清晰可见。
尝试复制文件。将文件复制到 FTP 服务器时发生错误。确保您有权将文件放到服务器上。
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"