VSFTPD, 553 파일을 만들 수 없습니다. -권한?

Amazon Linux AMI를 사용하여 Amazon EC2에 vsftpd를 설정했습니다. 사용자를 만들었습니다. 이제 ftp를 통해 성공적으로 연결됩니다. 그러나 무언가를 업로드하려고하면 오류 메시지가 나타납니다.

553 Could not create file. 

이 작업이 권한과 관련이 있다고 가정하지만 “고칠 수있을만큼 충분히 알지 못합니다. 기본적으로 파일을 업로드하려면 어떻게해야합니까?

댓글

  • selinux 설정을 확인하십시오. 부울 allow_ftpd_full_access를 ON으로 구성
  • 파일을 쓸 공간이 부족하여이 문제가 발생했습니다.

답변

이 문제가 발생할 수있는 두 가지 이유가 있습니다. 업로드하려는 디렉토리로 연결되는 디렉토리에 대한 쓰기 및 실행 권한이 없거나 vsftpd는 업로드를 허용하지 않도록 구성되어 있습니다.

전자의 경우 chmodchown 사용자가 모든 중간 디렉토리에 대해 이러한 권한을 가지고 있는지 확인하십시오. 쓰기 비트를 사용하면 영향을받는 사용자가 디렉토리 내에서 파일을 생성, 이름 변경 또는 삭제하고 디렉토리의 속성을 수정할 수 있으며, 읽기 비트를 사용하면 영향을받는 사용자가 디렉토리 내의 파일을 나열 할 수 있습니다. 경로의 중간 디렉토리도 마찬가지입니다. 이에 영향을 미치기 때문에 업로드하려는 최종 대상까지 적절하게 권한을 설정해야합니다.

후자의 경우 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에서 사용하도록 구성한 폴더에 쓰기를 허용합니다.

다음 링크가 도움이 될 수 있습니다.

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 

효과가있었습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다