我正在尝试在运行 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 …
Run Code Online (Sandbox Code Playgroud)