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로 설정됩니다.
답변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_username=압둘라내 기존 사용자 이름을 사용합니다.
그런 다음 권한 문제가 발생하여 ftp 폴더의 소유권을 변경하여 해결했습니다./var/ftp/pub~에서뿌리도착하다파일 전송 프로토콜. 그런 다음 파일을 업로드하고 바인딩할 수 있지만 umask 옵션이 있기 때문에 수정할 수는 없습니다.