Ubuntu 16.04LTSで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に設定されています。
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/pubrootからftpに。次に、umaskオプションがあるため、ファイルをアップロードしてバインドすることはできましたが、変更することはできませんでした。