You cannot see this page without javascript.

본문 바로가기

쓰기

조회 수 1548 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

vsFTP에서 최초 설치시 모든 계정의 FTP 루트 디렉토리가 실제 시스템의 루트 디렉토리와 같도록 설정되어 있습니다. 즉, FTP상에서 보이는 최상위 디렉토리가 시스템의 루트 디렉토리와 같습니다.

776537502280b216a6e3744274bdb8a6.png


이렇게 사용하면, 한 개 혹은 소수의 계정을 가지고 서버를 혼자 사용하는 경우는 크게 문제가 되지 않겠지만, 여러 사람이 서버를 함께 사용하는 경우 보안상의 문제가 발생할 수 있습니다.

꼭 다중 사용자가 아니더라도, 사용할 기능별로 계정을 달리 설정하는 것이 유지관리나 미관상(?)으로도 좋을 것입니다.

리눅스에서는 계정별로 쉘에 표시되는 홈 디렉토리를 서로 다르게 보이도록 하는 명령어인 chroot를 제공하고 있습니다. 이와 비슷한 기능을 vsFTP에서도 제공합니다.

이 글에서는 각 계정의 FTP 루트 디렉토리를 각 계정의 홈 디렉토리로 한정하는 방법을 다루도록 하겠습니다.


FTP에 Chroot 적용하기

vsftpd.conf의 다음 부분을 찾아서 주석을 제거하고 저장합니다.


vsftpd.conf   

chroot_local_user=YES   



FTP 데몬을 재시작해준다.


sudo service vsftpd restart   


다음과 같이 FTP 접속시 표시 가능한 최상위 디렉토리가 홈 디렉토리로 한정된 것을 확인할 수 있습니다.

560c19da6282c181d4f493606de22c55.png



'vsftpd: refusing to run with writable ...' 오류 해결

위와 같이 설정을 바꿨는데, 간혹 FTP 접속이 아예 이루어지지 않는 경우가 있습니다.

이는 홈 디렉토리에 쓰기 권한이 허용되어 있어서 발생하는 문제로, 홈 디렉토리의 쓰기 권한(w)를 모두 해제해주면 간단히 해결됩니다.


sudo chmod a-w /home/foo_user     


무슨 이유인지는 잘 모르겠지만, vsFTP뿐만이 아니라 다른 FTP 데몬에서도 FTP 루트 디렉토리에 쓰기를 허용하지 않고 있습니다.

권한이 없어서가 아니라 있어서 문제가 발생한다니, 약간 이해가 가지 않는 대목이기도 하지만 무엇인가 이유가 있었을거라 생각해 봅니다.

루트 쓰기를 허용하기 위한 옵션으로 allow_writ(e)able_(ch)root=YES로 설정하면 된다는 말도 있지만, 직접 해 본 결과 환경설정 오류로 인해 아예 FTP 접속이 되지 않는 문제만 발생했습니다. 이 환경설정 옵션은 vsFTP 매뉴얼에서 나와 있지 않습니다.

FTP를 통해 홈디렉토리 루트에 직접 쓸 수 없으니, 필요한 디렉토리는 root계정을 이용해 직접 생성해 주어야 합니다.


규칙 예외 지정하기

root와 같은 일부 계정에는 홈디렉토리가 아닌 실제 루트 디렉토리를 FTP의 루트 디렉토리로 표시해 줄 필요가 있습니다.

vsFTP에서는 이를 위해 예외 리스트를 만들고 적용하는 방법을 제공하며, 역시 vsftpd.conf에서 지정할 수 있습니다.

vsftpd.conf에서 다음 두 줄의 주석을 삭제하고, /etc/vsftpd.chroot_list 파일을 다음과 같이 작성합니다.


vsftpd.conf  

chroot_list_enable=YES  

chroot_list_file=/etc/vsftpd.chroot_list  


vsftpd.chroot_list 

root 

(그 외 설정을 적용할 ID를 나열한다.) 


이렇게 하면 root 계정에 한해서 FTP에 접속할 때 실제 루트 디렉토리를 보여주게 됩니다.

단, chroot_local_user=YES를 지정하지 않은 경우, chroot_list_file에 있는 계정에 한해서 루트 디렉토리로 홈 디렉토리를 보여주게 됩니다. 즉, chroot_local_user의 설정값에 따라서 chroot_list_file의 동작 방식이 반대로 바뀌는 것입니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 mysql 사용자 추가 명령 모음 운영자 2013.03.14 3023
112 [Apache] 2.4 버전에서 403 에러시 [authz_core:error AH01630: client denied by server configuration] 운영자 2015.08.19 823
111 우분투 Apache2 VirtulaHost 설정하는 방법 운영자 2015.08.19 1331
110 tar 를 이용한 자료 복사 운영자 2015.08.19 1494
109 [Ubuntu 10.04 LTS] 하드웨어를 확인하는 명령어 file 운영자 2015.07.10 1013
108 우분투 시스템 온도체크 / 하드 온도 체크 file 운영자 2015.07.10 1293
107 우분투에서 하드 상태 체크하기 운영자 2015.07.10 804
106 우분투 apt-get 서버 원래대로 복원 운영자 2015.02.26 1582
105 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 운영자 2014.11.04 1430
» vsFTP 계정별 서로 다른 루트 디렉토리 지정하기 (chhroot) file 운영자 2014.11.03 1548
103 우분투(Ubuntu) | 우분투 14.04에서 403 You don't have permission to access / on this server. 해결하는 방법 운영자 2014.10.25 4034
102 리눅스파일시스템점검과 복구강좌. e2fsck 2편 운영자 2014.09.25 1880
101 리눅스파일시스템점검과 복구강좌. e2fsck 1편 운영자 2014.09.24 2279
100 리눅스 파일시스템 체크 하기 fsck(e2fsck)사용법 운영자 2014.09.24 10485
99 ftp에서 심볼릭링크를 사용하고 싶을 때 운영자 2014.08.26 2180
98 우분투 14.04 업데이트 하는 방법을 알고 싶습니다. 운영자 2014.08.11 2090
97 ubuntu server 설치후 콘솔창 한글 깨지는 현상 운영자 2014.08.11 7727
96 우분투 root 계정 사용하기 file 운영자 2014.08.11 2084
95 콘솔의 화면보호기능을 끄려면? 운영자 2014.08.11 2671
94 Ubuntu Hdd 추가하기 운영자 2014.05.30 2903
93 df -h 에서 1% 줄어드는 용량 운영자 2014.04.07 2863
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7