vsftpd“500 OOPS : 디렉토리를 변경할 수 없습니다”오류를 수정하는 설정은 무엇입니까?


14

내 질문은 vsftpd 시스템에 로그인하기 위해 어떤 설정 및 / 또는 명령을 실행해야합니까?

sftp 대신 ftp를 사용하여 로그인하면이 오류가 발생합니다.

Name (localhost:dbadmin): dbadmin
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/dbadmin
Login failed.
ftp> 

이것은을 사용하여 로그인 할 때 작동 sftp@하지만 서버가 방화벽 뒤에 있으므로 sftp뿐만 아니라 ftp를 사용하여 로그인 할 수 있어야합니다.

"OOPS"오류에 대해 꽤 많은 게시물을 살펴 보았지만 지금까지 로그인에 운이 없었습니다.

내 시스템 및 설정에 대한 정보는 다음과 같습니다.

CentOS 6.4를 실행하고 있습니다.

iptables 및 ip6tables가 중지되고 비활성화됩니다.

내 홈 디렉토리는 700으로 보호되어 있으며 750을 시도했지만 그 차이가 있는지 확인했습니다. 그렇지 않았다.

활성 라인은 다음과 같습니다. /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

내 로그인 이름이 user_list에 없습니다.


심지어 나는 똑같은 문제에 직면했다.

selinux를 비활성화해도 문제가 계속 발생하면 디렉토리의 권한을 다시 확인하십시오. ftp 사용자에게 해당 폴더에 대한 권한이 있습니까? 또는 해당 폴더의 상위에 setgid 비트가 설정되어 있습니까? 아래에 새 폴더를 만들려고하면 상위 폴더의 's'비트가 문제를 일으킬 수 있습니다.
Chatchai Mao

답변:


10

서비스와 서버를 다시 시작할 필요없이이 명령을 실행하십시오.

# setenforce 0

SELinux 상태를 확인하려면

# getenforce

또는

파일을 편집 /etc/sysconfig/selinux포함

SELINUX=disabled

그렇게하려면 재부팅해야합니다.


3
1 년 반 전에 거의 같은 대답에 대한 맹렬한 투표를 한 것이 흥미 롭습니다.
octopusgrabbus

7

SELinux를 비활성화 SELINUX=disabled하면 문제가 해결 되지만 권장되지는 않습니다. ftp_home_dir다음 명령을 실행하여 ftp 사용자가 SELinux 부울 값 을 구성하여 홈 디렉토리에 액세스 할 수있게합니다 .

setsebool -P ftp_home_dir=1

백틱이 필요합니까, 또는 코드 / 명령의 인라인 및 블록 포맷 결과입니까?
Anthon

아니요, 백틱은 필요하지 않습니다.
suprjami

SELinux를 사용하지 않고 전체 시스템의 보안 수준을 낮추지 않으려면이 문제를 해결하기위한 최선의 방법이어야합니다.
Tomofumi

부울 ftp_home_dir이 정의되지 않았습니다 ??
Exlord

3

FTP 데몬을 실행하여 모든 파일에 대한 모든 액세스를 항상 허용 할 수 있습니다

setsebool -P allow_ftpd_full_access 1

2

이 지시 사항을 따라 selinux를 비활성화 했습니다 . sftp를 사용하지 않고 로그인 할 수있었습니다.

영구적으로 비활성화하려면 편집 /etc/selinux/config하고 설정했습니다.

SELINUX=disabled

재부팅 후 정상적으로 로그인 할 수있었습니다.


2
SELinux를 비활성화하는 것은 SELinux가 문제의 원인인지 아닌지를 결정하기위한 문제 해결 단계입니다. SELinux가 원인 인 것으로 판단되면 AVC 거부를 조사하고 변경해야 할 부울을 결정하거나 SELinux 도구를 사용하여 사용자 정의 정책을 작성해야합니다. SELinux를 영구적으로 비활성화하는 것은 좋은 생각이 아닙니다.
suprjami

0

아마도 사용자에게는 홈 폴더에 대한 실행 권한이 없습니다. 행하다:

chmod +x /home/user

또는,

chmod 700 /home/user

0

이것이 도움이되기를 바랍니다.

local_root=/var/www/ftp/$USER
user_sub_token=$USER

1
이 사이트에 오신 것을 환영합니다. 답변이 원래 문제를 어떻게 해결하는지 (즉, 어떤 메커니즘에 의해) 더 많은 설명을 추가 하시겠습니까? 이렇게하면 비슷한 문제에 직면 한 다른 사람들이 왜이 문제가 처음에 발생했는지에 대한 통찰력을 얻을 수 있습니다.
AdminBee

-1

실행 setenforce 0나를 위해 작동하지 않았다 제안 다른 응답으로.

다음 명령으로 문제가 해결되었습니다.

chmod -R 755 /home/dbadmin

(이전에는 / home / dbadmin 디렉토리에 700 개의 권한이있었습니다.)

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