Amazon Linux AMI를 사용하여 Amazon EC2에서 VSFTPD를 설정했습니다. 사용자를 만들었으며 이제 ftp를 통해 성공적으로 연결할 수 있습니다. 그러나 무언가를 업로드하려고하면 “553 파일을 만들 수 없습니다”라는 오류 메시지가 나타납니다.
나는 이것이 권한과 관련이 있다고 생각하지만, 그것을 고칠 수있는 것에 대해서는 충분히 모른다. 기본적으로 파일을 업로드하려면 어떻게해야합니까?
답변
이 문제가 발생할 수있는 이유는 두 가지입니다. 업로드하려는 디렉토리로 연결되는 디렉토리에 대한 쓰기 및 실행 권한이 없거나 업로드 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
지정해야합니다.
답변
FTP 홈 디렉토리 (ftp_home_dir)는 SeLinux에서 꺼져있을 가능성이 높습니다. ftpd
제어 파일의 상태를 보려면 다음을 발행하십시오.getsebool -a
ftpd 섹션을 찾으십시오. ftp_home_dir이 꺼져 있음을 알 수 있습니다. 켜려면 다음 명령을 사용하십시오.setsebool -P ftp_home_dir=1
다음을 사용하여 입력을 확인하십시오. getsebool -a
다음 업로드를 다시 시도하십시오.
참고 : 문장 부호를 무시하십시오.
답변
나는 같은 문제가 있었고 SELinux를 변경하여 내가 사용하도록 구성된 폴더에 쓸 수 있도록 수정했습니다. vsftp = /var/ftp/pub
.
이 링크는 도움이 될 수 있습니다.
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
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
답변
이 시도
chmod 757 -R /var/www/html