我正在尝试在运行Ubuntu 12.04的服务器上与虚拟用户build立VSFTPD。 我已经configuration了服务器,以允许虚拟用户login,但我无法获得它允许上传。 我的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'拥有的目录。 据我了解,当一个虚拟用户以这种方式login时,他们将以虚拟的方式出现在系统上。 使用此configuration用户可以login,但不能上传文件。 /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"
我试图以各种方式更改这些目录的权限,但似乎没有任何工作。 我有一种感觉,这是一些简单的权限。 有任何想法吗?
该问题可能是由目录权限造成的,我已经为我工作了vsftpd,如下所示:
anonymous_enable = NO local_enable = YES WRITE_ENABLE = YES local_umask = 022 dirmessage_enable = YES xferlog_enable = YES connect_from_port_20 = YES chown_uploads = YES xferlog_file = /无功/日志/ vsftpd.log xferlog_std_format = YES ftpd_banner =欢迎使用blah FTP服务。 ls_recurse_enable = NO 听= YES pam_service_name = VSFTPD userlist_enable = YES tcp_wrappers的= YES
目录是否存在?
/var/www/zac
而且这个目录属于zac?
尝试:
mkdir -p /var/www/zac; chown zac /var/www/zac; chmod 600 /var/www/zac;
并再次上传文件
试试虚拟用户启用写入权限:
virtual_use_local_privs=YES
VSFTP不允许上传虚拟用户您需要创build本地用户,或者您可以使用单个用户映射到所有虚拟用户,在这种情况下,您不能控制用户明智的权限检查此链接 – https://gist.github.com/stas/ 315765