VSFTPD 不允许使用虚拟用户上传

Mr.*_*uig 8 virtualization ubuntu ftp vsftpd

我正在尝试在运行 Ubuntu 12.04 的服务器上使用虚拟用户设置 VSFTPD。我已将服务器配置为允许虚拟用户登录,但无法让它允许上传。我的 vsftpd.conf 如下:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

chroot_local_user=YES
virtual_use_local_privs=YES
guest_enable=YES
guest_username=virtual
user_sub_token=$USER
local_root=/var/www/$USER
hide_ids=YES

secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Run Code Online (Sandbox Code Playgroud)

/etc/pam.d/vsftpd 包含:

auth required pam_pwdfile.so pwdfile /etc/vsftpd.passwd crypt=hash
account required pam_permit.so crypt=hash
Run Code Online (Sandbox Code Playgroud)

我设置了两个虚拟用户,其中一个与本地用户同名。他们每个人在 /var/www/ 中都有一个由“虚拟”拥有的目录。据我了解,当虚拟用户以这种方式登录时,他们将在系统中显示为虚拟用户。使用此配置用户可以登录,但不能上传文件。中给出的错误/var/log/vsftpd.log是:

Tue Nov 20 19:49:00 2012 [pid 2] CONNECT: Client "96.233.116.53"
Tue Nov 20 19:49:07 2012 [pid 1] [zac] OK LOGIN: Client "96.233.116.53"
Tue Nov 20 19:49:11 2012 [pid 2] CONNECT: Client "96.233.116.53"
Tue Nov 20 19:49:11 2012 [pid 1] [zac] OK LOGIN: Client "96.233.116.53"
Tue Nov 20 19:49:11 2012 [pid 3] [zac] FAIL CHMOD: Client "96.233.116.53", "/test.ppm 644"
Run Code Online (Sandbox Code Playgroud)

我尝试以各种方式更改这些目录的权限,但似乎没有任何效果。我有一种感觉,这是与权限相关的简单事情。有任何想法吗?

小智 1

该问题可能是由目录权限引起的,我已经为我工作了 vsftpd,如下所示:

匿名_启用=否
本地启用=是
写启用=是
本地掩码=022
dirmessage_enable=是
xferlog_enable=是
connect_from_port_20=是
chown_uploads=是
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=欢迎使用 FTP 服务。
ls_recurse_enable=否
听=是
pam_service_name=vsftpd
用户列表启用=是
tcp_wrappers=是