[centos] sftp 상위 폴더 접근 제한

2019. 8. 22. 16:25Linux

웹 개발을 하던중 다른 사람에게 FTP 접속 정보를 알려주어야 하는데 상위 폴더로의 접근이 가능하여

만약 수정 삭제가 된다면 문제가 발생을 할수 있기 때문에 별도의 FTP 접속 ID를 만들어서

보여주고싶은 폴더까지만 노출이 될수 있도록 하기 위하여 이와같은 글을 작성하였습니다. 

 

1-1. 계정 생성

#useradd testuser

 

 

1-2 계정 생성 되었는지 확인

#cat /etc/passwd

 

 

1-3 계정 비밀번호 세팅

#passwd testuser

 

 

2-1 SSH 설정 변경 

#vim /etc/ssh/sshd_config 

 - 기존 Subsystem sftp /usr/libexec/openssh/sftp-server 값을 주석 처리하고 Subsystem sftp internal-sftp 로 변경

#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

 

- 추가한 아이디 값을 원하는 디렉토리에 마춰서 세팅

Match User testuser
     ChrootDirectory /home/testuser
     ForceCommand internal-sftp
     X11Forwarding no
     AllowTCPForwarding no

 

- 아래와 같이 여러개 작성도 가능합니다.  group 으로도 설정이 가능 합니다.

 

 

2-2 저장하고 나와서 ssh 재시작

#service sshd restart

 

 

3-1 폴더 권한 및 소유자 변경 처리 

#chmod 755 /home/testuser
 - 폴더 권한은 755로 설정

#chown root /home/testuser
 - 폴더 소유자는 root로 변경

#mkdir /home/testuser/www
 - 기본 폴더 아래에 www 폴더 생성

#chmod 775 /home/testuser/www
 - 폴더 권한은 위와 다르게 쓰기권한을 포함한 775로 설정

#chown root:testuser /home/testuser/www
 - 폴더 소유자는 위와 같이 root 로 변경

 

위와 같이 설정이 되었다면 파일질라 or 알FTP 와 같은 FTP 접속 프로그램을 사용하여 접속을 해보면 더이상 상위 폴더로 올라가지 않고 하위폴더만 보여지게 됩니다. 

 

자료를 찾아보면서 따라하는중간에 home 폴더 소유자 , 권한을 수정한 후에 파일들을 올리거나 폴더 생성이 되지 않는 문제가 있엇는데 당연히 확인해보니 home 폴더의 소유자는 root 이고 그룹은 testuser 로 되어있기 때문에 755 권한으로는 해당 폴더에서 아무런 작업도 할수 없는 상황이 발생하였습니다.

그리하여 해당 폴더 아래에 www 폴더를 만들고 동일하게 소유자는 root 로 하되 권한을 그룹권한의 쓰기권한인 775 로 설정하였더니 정상적으로 폴더 생성 및 파일 업로드 다운로드가 되는것을 확인할수 있었습니다. 

 

ps) 기존 아파치 virtualhost 의 DocumentRoot 값을 /home/testuser 로 설정하였기 때문에 해당 부분도 /home/testuser/www 로 변경하여 웹도 원활 하게 돌아가는것을 확인 하였습니다. 

 

 

'Linux' 카테고리의 다른 글

[centos] mysql 설치  (0) 2019.07.18
[centos] apache-tomcat 설치  (0) 2019.07.18
[centos] java 설치  (0) 2019.07.18
[centos] 계정 비밀번호 변경  (0) 2019.07.18