IT정보공유

[리눅스] CentOS FTP Server 연결 실패 cannot change directory

알지오™ 2020. 1. 15.

파일질라 FTP Client를 이용해 리눅스 CENTOS로 구서안 FTP Server에 접속을 하려고 했으나

에러코드 500, OOPS: cannot change directory 오류가 발생했습니다.

 

FTP Server 접속 오류 메세지
//실제 FTP 오류 메세지


상태:	16.10.14.19:21에 연결...

상태:	연결 수립, 환영 메시지를 기다림...

상태:	Plain FTP is insecure. Please switch to FTP over TLS.

명령:	USER ftpuser

응답:	331 Please specify the password.

명령:	PASS ***********

응답:	500 OOPS: cannot change directory:/mnt/ftpstorage/ftpdata

오류:	치명적 오류: 서버에 연결하지 못함

상태:	서버와의 연결이 종료됨

 

상태:	10.10.14.15:20021에 연결...
상태:	연결 수립, 환영 메시지를 기다림...
상태:	Plain FTP is insecure. Please switch to FTP over TLS.
명령:	USER ftpuser
응답:	331 Please specify the password.
명령:	PASS ***********
응답:	500 OOPS: vsftpd: refusing to run with writable root inside chroot()
오류:	치명적 오류: 서버에 연결하지 못함

 

Error Code 500 디렉토리 변경 실패 메세지인 것으로 보아
디렉토리 권한 문제로 추정이 되지만, 
ftpuser 라는 사용자의 홈디렉토리를 마운트되어 있는 하드디스크로 변경을 하다보니
해당 디렉토리의 접근 권한 때문이라고 추정을 했습니다.

* 해당 마운트는 root 권한으로 했고, Home 디렉토리로 지정한 디렉토리 역시 
root 권한으로 생성했던 디렉토리 입니다. 
(chmod 766 명령어로 읽기,쓰기 권한은 모두 지정해준 상태)

 

FTP 접속 오류 임시 해결 방안

vsftpd의 설정파일인 vsftpd.conf 파일을 수정하여 옵션을 이것저것 변경해봤지만
해결이 되지 않아 chmod 777명령어로 읽기 및 실행권한까지 모두 부여하니 해결이 되었습니다.

chmod -R 777 ftpdir

 

chmod 777 문제점

 

이렇게 chmod 777로 디렉토리에 모든 읽기,쓰기,실행등 모든 권한을 주다보니
FTP 접속을 하더라도 상위폴더 접근등이 되버리는 문제점이 있네요.

이렇게 되면 보안에 취약해 지게 됩니다. 그래서 다른 방법을 찾아보았습니다.

 

FTP 500 OOPS: cannot change directory 문제 해결 방법

 

/etc/vsftpd/vsftpd.conf 파일을 vi 편집기를 통해 allow_writeable_chroot 설정을 YES로 수정 또는 추가한다.

 

allow_writeable_chroot=YES

 

vsftpd 상위 디렉토리 접근을 막기위해 폴더 권한을 설정합니다.

chmod a-w /mnt/ftp

 

댓글

💲 추천 글