Amazon Linux AMI를 사용하여 Amazon EC2에 vsftpd
를 설정했습니다. 사용자를 만들었습니다. 이제 ftp를 통해 성공적으로 연결됩니다. 그러나 무언가를 업로드하려고하면 오류 메시지가 나타납니다.
553 Could not create file.
이 작업이 권한과 관련이 있다고 가정하지만 “고칠 수있을만큼 충분히 알지 못합니다. 기본적으로 파일을 업로드하려면 어떻게해야합니까?
댓글
- selinux 설정을 확인하십시오. 부울 allow_ftpd_full_access를 ON으로 구성
- 파일을 쓸 공간이 부족하여이 문제가 발생했습니다.
답변
이 문제가 발생할 수있는 두 가지 이유가 있습니다. 업로드하려는 디렉토리로 연결되는 디렉토리에 대한 쓰기 및 실행 권한이 없거나 vsftpd
는 업로드를 허용하지 않도록 구성되어 있습니다.
전자의 경우 chmod
및 chown
사용자가 모든 중간 디렉토리에 대해 이러한 권한을 가지고 있는지 확인하십시오. 쓰기 비트를 사용하면 영향을받는 사용자가 디렉토리 내에서 파일을 생성, 이름 변경 또는 삭제하고 디렉토리의 속성을 수정할 수 있으며, 읽기 비트를 사용하면 영향을받는 사용자가 디렉토리 내의 파일을 나열 할 수 있습니다. 경로의 중간 디렉토리도 마찬가지입니다. 이에 영향을 미치기 때문에 업로드하려는 최종 대상까지 적절하게 권한을 설정해야합니다.
후자의 경우 vsftpd.conf
를 살펴보세요. 쓰기를 허용하려면 write_enable
가 true 여야합니다 (기본적으로 false 임).이 구성 파일에 대한 좋은 문서는 man 5 vsftpd.conf
에 있습니다.
댓글
- 둘 다 문제가되지 않는 것 같습니다. 모든 것을 777 (안전하지 않음) 및 설정 write_enable = YES로 chmod를 시도했지만 여전히 쓸모없는 오류 메시지입니다.
- @Cerin 고칠 수 있었습니까? 그렇다면 세부 정보를 공유 할 수 있습니까?
답변
해 볼 수 있습니까
chown -R ftpusername /var/www/html
댓글
- chmod 757 -R / var / www / html
- @Hern á nEche 팁 주셔서 감사합니다. 몇 시간 동안 수렵을했고 마침내 문제가 해결되었습니다.
- 상황에 대해 자세히 설명해 주시겠습니까?이게 서버에 있습니까? 아니면 로컬?
- @Hern á nEche Hey, 나에게도 효과가 있었지만 안전합니다. ' 755와 함께 작동하지 않았습니다.
- @Hern á nEche는 별도의 답변으로 만들어야합니다. 귀하의 제안은 별다른 효과가 없었던 저에게 효과적이었습니다.
답변
는 vsftpd
에서 작동하지 않습니다. 다음을 시도해보세요.
ftp put /path/to/local_file remote_file_name
remote_file_name
에 대해 원하는 이름이지만 지정해야합니다.
설명
- 답변에 더 자세한 정보를 추가하는 것을 고려해보세요 (예 : 솔루션의 유효성을 지원하는 일부 문서 ').
- 이 문제는
/path/to/
에 존재하지 ' (및 / 또는 FTP 세션을 통해 액세스 할 수 없음 ') 이것이ftp put local_file
가 명시 적 대상없이 작동하는 동작 이유입니다. (힌트 :local: … remote: …
줄을 FTP 클라이언트.) - 저에게 효과적이었습니다! 🙂
답변
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
위의 다른 의견에서 이미 설명한대로.
답변
해보기
chmod 757 -R /var/www/html
답변
vsftpd.conf
에서이 설정을 확인하세요.
guest_enable=YES # set it to NO then restart the vsftpd service.
YES
로 설정된 경우 553 Could not create file
도 발생합니다.
From : http://www.vsftpd.beasts.org/vsftpd_conf.html
guest_enable 활성화 된 경우 모든 비 익명 로그인은 “게스트”로그인으로 분류됩니다. 게스트 로그인은에 지정된 사용자로 다시 매핑됩니다. guest_username 설정.
기본값 : NO
Answer
다음 매개 변수는 어디서나 쓸 수있는 ftpd 액세스 권한을 부여합니다.
setsebool -P ftpd_full_acess=true
익명 업로드를 허용하지 않으려면 ftpd_anon_write
를 사용하지 마십시오.
A nswer
제 경우에는 파일 시스템에 문제가있었습니다.
공간이 있지만 파일 시스템에 inode가 부족합니다. df -i
# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvdf1 3276800 3276800 0 100% /ftp-data01
답변
또 다른 가능성 : 디스크 할당량 확인 사용자 / 그룹
ext :
repquota -a
xfs :
xfs_quota -x -c "report" /mount_point
답변
파일 이름에 지원되지 않는 문자가있을 수 있습니다.
답변
제 경우에는 ftp 사용자가 자신이 속한 디렉토리에서 권한이 없습니다 .
방금 대상 디렉토리로 이동하는 것을 잊었습니다. 올바른 권한이 있습니다.
답변
내 경우 (CentOS7 + vsftpd) 명령으로 디렉토리 권한을 775로 변경 " chmod 775 / home / u ser / ftpdir / " 도움이되지 않았습니다.
" sestatus , 활성화되었습니다. ftp 관련 옵션을 나열합니다. " getsebool -a | grep ftp "
그리고 " setsebool ftpd_full_access on " 명령으로 ftpd_full_access 비활성화 옵션을 활성화했습니다. 그런 다음 파일 쓰기를 시작했습니다.
Answer
Fedora23의 경우 다음 명령을 실행하십시오.
setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1
효과가있었습니다.