Permissions

無法在 vsftpd 中以匿名使用者身份上傳

  • July 31, 2017

我在 Ubuntu 16.04 LTS 上執行了 vsftpd。

在安裝過程中,會使用 /srv/ftp 的主目錄創建 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。

我已經安裝了 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_username=abdullah 。

然後我遇到了權限問題,這是通過將 ftp 文件夾**/var/ftp/pub的所有權從root更改為ftp**來解決的。然後,我可以上傳和綁定文件但不能修改它們,因為我們有一個 umask 選項。

引用自:https://unix.stackexchange.com/questions/346115