我在 Ubuntu 16.04 LTS 上运行 vsftpd。
在安装过程中,将创建一个 ftp 用户,其主目录为 /srv/ftp,因此这是默认的 FTP 目录。
这是我设置的 vsftpd.conf 文件权限。
listen_ipv6=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_umask=011
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
我想做的是将文件作为匿名用户上传到 ftp 服务器。我可以以匿名用户身份登录,但是当我尝试上传时,我得到了,
200 PORT command successful. Consider using PASV.
553 Could not create file.
现在,互联网上有许多来源都遇到了相同的错误,但没有一个解决方案可以解决我的错误。我知道我缺少某些权限。
/srv/ftp权限设置为755。
答案1
我已经安装了 vsftpd、filezilla,浏览了你的 .conf 并相应地添加了选项:
$ sudo cat /etc/vsftpd/vsftpd.conf | grep -v "#"
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=abdullah
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
filezilla 确实给出了一些反馈,我不得不更改选项chown_用户名=阿卜杜拉用我现有的用户名。
然后我遇到了权限问题,通过更改 ftp 文件夹的所有权来解决/var/ftp/pub从根到文件传输协议。然后,我可以上传并绑定文件,但不能修改它们,因为我们有一个 umask 选项。