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


31

Amazon Linux AMI를 사용하여 Amazon EC2에서 VSFTPD를 설정했습니다. 사용자를 만들었으며 이제 ftp를 통해 성공적으로 연결할 수 있습니다. 그러나 무언가를 업로드하려고하면 "553 파일을 만들 수 없습니다"라는 오류 메시지가 나타납니다.

나는 이것이 권한과 관련이 있다고 생각하지만, 그것을 고칠 수있는 것에 대해서는 충분히 모른다. 기본적으로 파일을 업로드하려면 어떻게해야합니까?


selinux 설정을 확인하십시오. 부울 allow_ftpd_full_access를 ON으로 설정

답변:


18

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

전자의 경우, 사용 chmodchown 적절하게 확인 사용자가 모든 중간 디렉토리에 이러한 권한이 있는지 확인합니다. 쓰기 비트를 사용하면 영향을받는 사용자가 디렉토리 내에서 파일을 작성, 이름 바꾸기 또는 삭제하고 디렉토리의 속성을 수정할 수 있으며, 읽기 비트를 사용하면 영향을받는 사용자가 디렉토리 내의 파일을 나열 할 수 있습니다. 경로의 중간 디렉토리도 여기에 영향을 미치므로 권한을 올바로 설정하여 업로드하려는 최종 목적지로 설정해야합니다.

후자의 경우을보십시오 vsftpd.conf. write_enable쓰기를 허용하려면 true 여야하며 기본적으로 false입니다. 이 구성 파일에 대한 유용한 설명서가에 있습니다 man 5 vsftpd.conf.


10
이것들 중 어느 것도 문제가되지 않는 것 같습니다. 모든 것을 777 (안전하지 않은)으로 설정하고 write_enable = YES로 설정했지만 여전히 쓸모없는 오류 메시지가 나타납니다.
Cerin

@Cerin은 고칠 수 있었습니까? 그렇다면 세부 정보를 공유 할 수 있습니까?
unknownerror

34

당신이 이것을 시도 할 수 있습니까

chown -R ftpusername /var/www/html

5
chmod 757 -R / var / www / html
Hernán Eche

1
@ HernánEche 팁 주셔서 감사합니다, 나는 몇 시간 동안 사냥을하고 있었고 이것은 마침내 내 문제를 해결했습니다.
Tr0yJ

상황에 대해 자세히 설명해 주시겠습니까? 서버 또는 로컬입니까?
Édouard Lopez

1
@ HernánEche Hey, 그것은 나에게도 효과가 있었지만 안전합니다. 755와 작동하지 않았습니다
viv

1
@ HernánEche 당신은 이것을 별도의 대답으로 만들어야합니다. 당신의 제안은 다른 곳에서 저를 위해 일했습니다.
Shaul는 내가 Monica를 지원한다고 말한다.

11

이 명령 ftp put /path/to/local_file은 작동하지 않습니다 vsftpd. 다음을 시도하십시오 :

ftp put /path/to/local_file remote_file_name 

에 대해 원하는 이름을 선택할 수 있지만 이름을 remote_file_name지정해야합니다.


2
답변에 세부 정보를 추가하는 것을 고려할 수 있습니다 (예 : 솔루션의 유효성을 지원하는 일부 문서).
HalosGhost

서버에 (및 if) /path/to/가 존재하지 않거나 FTP 세션을 통해 액세스 할 수 없기 때문에 발생 합니다. 이것은 왜 ftp put local_file 하지 명시 적 목적없이 일을. (힌트 : local: … remote: …FTP 클라이언트에서 회선을 확인하십시오 .)
Skippy le Grand Gourou

1
그것은 나를 위해 일했다! :)
Paulo

3

FTP 홈 디렉토리 (ftp_home_dir)는 SeLinux에서 꺼져있을 가능성이 높습니다. ftpd제어 파일의 상태를 보려면 다음을 발행하십시오.getsebool -a ftpd 섹션을 찾으십시오. ftp_home_dir이 꺼져 있음을 알 수 있습니다. 켜려면 다음 명령을 사용하십시오.setsebool -P ftp_home_dir=1

다음을 사용하여 입력을 확인하십시오. getsebool -a 다음 업로드를 다시 시도하십시오.

참고 : 문장 부호를 무시하십시오.


2

나는 같은 문제가 있었고 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

다른 의견에서 이미 설명한 바와 같이.


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



0

다른 가능성 : 사용자 / 그룹의 디스크 할당량 확인

내선 :

repquota -a

xfs :

xfs_quota -x -c 'report' /mount_point

0

다음 매개 변수는 ftpd에 어디서나 쓸 수있는 액세스 권한을 제공합니다.

setsebool -P ftpd_full_acess=true 

ftpd_anon_write익명 업로드를 허용 하지 않으면 사용 하지 마십시오 .



-1

Fedora23의 경우 다음 명령을 실행하십시오.

setsebool -P ftpd_anon_write 1 
setsebool -P ftpd_full_access 1

그것은 나를 위해 일했다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.