답변:
이 문제가 발생할 수있는 이유는 두 가지입니다. 업로드하려는 디렉토리로 연결되는 디렉토리에 대한 쓰기 및 실행 권한이 없거나 업로드 vsftpd
를 허용하지 않도록 구성되어 있습니다.
전자의 경우, 사용 chmod
및chown
적절하게 확인 사용자가 모든 중간 디렉토리에 이러한 권한이 있는지 확인합니다. 쓰기 비트를 사용하면 영향을받는 사용자가 디렉토리 내에서 파일을 작성, 이름 바꾸기 또는 삭제하고 디렉토리의 속성을 수정할 수 있으며, 읽기 비트를 사용하면 영향을받는 사용자가 디렉토리 내의 파일을 나열 할 수 있습니다. 경로의 중간 디렉토리도 여기에 영향을 미치므로 권한을 올바로 설정하여 업로드하려는 최종 목적지로 설정해야합니다.
후자의 경우을보십시오 vsftpd.conf
. write_enable
쓰기를 허용하려면 true 여야하며 기본적으로 false입니다. 이 구성 파일에 대한 유용한 설명서가에 있습니다 man 5 vsftpd.conf
.
당신이 이것을 시도 할 수 있습니까
chown -R ftpusername /var/www/html
이 명령 ftp put /path/to/local_file
은 작동하지 않습니다 vsftpd
. 다음을 시도하십시오 :
ftp put /path/to/local_file remote_file_name
에 대해 원하는 이름을 선택할 수 있지만 이름을 remote_file_name
지정해야합니다.
/path/to/
가 존재하지 않거나 FTP 세션을 통해 액세스 할 수 없기 때문에 발생 합니다. 이것은 왜 ftp put local_file
하지 명시 적 목적없이 일을. (힌트 : local: … remote: …
FTP 클라이언트에서 회선을 확인하십시오 .)
나는 같은 문제가 있었고 SELinux를 변경하여 내가 사용하도록 구성된 폴더에 쓸 수 있도록 수정했습니다. vsftp = /var/ftp/pub
.
이 링크는 도움이 될 수 있습니다.
SELinux로 계속 진행하고 싶지 않으면 변경하지 마십시오. 기본값으로 표시됩니다 /etc/selinux/config
SELINUX=enforcing
그런 다음 루트 또는 명령으로 명령을 실행하십시오 sudo
.
sudo setsebool -P ftpd_anon_write 1
sudo setsebool -P ftpd_full_access 1
다른 의견에서 이미 설명한 바와 같이.
vsftpd.conf
이 설정을 확인하십시오 .
guest_enable=YES # set it to NO then restart the vsftpd service.
로 설정 YES
하면 553 Could not create file
.
보낸 사람 : http://www.vsftpd.beasts.org/vsftpd_conf.html
guest_enable 활성화 된 경우 익명이 아닌 모든 로그인은 "게스트"로그인으로 분류됩니다. 손님 로그인은 guest_username 설정에 지정된 사용자에게 다시 매핑됩니다.
기본값 : NO