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

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

/etc/pam.d/vsftpd包含:

auth required pam_pwdfile.so pwdfile /etc/vsftpd.passwd crypt=hash
account required pam_permit.so crypt=hash

我设置了两个虚拟用户,其中一个与本地用户同名。它们各自在 /var/www/ 中都有一个由“virtual”拥有的目录。据我了解,当虚拟用户以这种方式登录时,他们将以用户虚拟的身份出现在系统中。使用此配置,用户可以登录,但无法上传文件。给出的错误/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"

我尝试过各种方法来更改这些目录的权限,但似乎都不起作用。我觉得这和权限有关,很简单。有什么想法吗?

答案1

该问题可能是由目录权限引起的,我的 vsftpd 运行如下:

匿名启用=否
本地启用=是
写入启用=是
本地 umask=022
dirmessage_enable=是
xferlog_enable=YES
连接端口 20=是
chown_uploads=是
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=是
ftpd_banner=欢迎使用 blah FTP 服务。
ls_recurse_enable=否
听=是
pam_service_name=vsftpd
用户列表启用=YES
tcp_wrappers=是

答案2

该目录是否存在?

 /var/www/zac

这个目录属于 zac 吗?

尝试:

 mkdir -p /var/www/zac; chown zac /var/www/zac; chmod 600 /var/www/zac;

并再次上传文件

答案3

VSFTP 不允许虚拟用户上传,您需要创建本地用户,或者您可以使用映射到所有虚拟用户的单个用户,在这种情况下您无法控制用户明智的权限,请检查此链接 -https://gist.github.com/stas/315765

答案4

尝试对虚拟用户启用写访问权限:

virtual_use_local_privs=YES

相关内容