주요글: 도커 시작하기
반응형

타 부서에서 이미지 서버로 사용할 장비가 필요하다 해서 다음과 같이 설정했다.

  • 이미지 업로드용 계정 생성 : imageuser
  • 해당 계정의 /images 경로 생성 : /home/imageuser/images
  • 아파치 httpd로 이미지 경로 설정 : /home/imageuser/images
  • imageuser 계정은 ssh 접근 막음
  • imageuser 계정으로 sftp 연결하면, /home/imageuser 를 루트 디렉토리로 인식함
과정을 정리해보면 다음과 같다.

1. imageuser 계정 생성

계정을 생성하고 암호를 설정한다.

$ useradd imageuser
$ passwd imageuser

2. 업로드할 파일을 보관할 디렉토리 생성

imageuser 계정으로 로그인한 뒤 /home/imageuser에 images 디렉토리를 생성한다.

$ su imageuser
$ cd ~
$ mkdir images

3. sshd_config 설정

/etc/ssh/sshd_config 파일의 설정을 변경하고 sshd를 재시작한다.

# imageuser 계정이 sftp로 연결할 수 있게
Subsystem       sftp    internal-sftp

# imageuser 계정이 sftp로 연결한 경우, /home/imageuser를 루트디렉토리로 인식하게 설정
Match User imageuser
        ForceCommand internal-sftp
        ChrootDirectory /home/imageuser

위 설정에서 ChrootDirectory 설정은 /home/imageuser를 루트 디렉토리로 인식하도록 설정한다.

4. 홈디렉토리를 root 소유로 변경하고 접근 권한 변경

Chroot를 적용하기 위해 /home/imageuser를 root 소유로 변경하고 접근 권한을 755로 변경한다.

$ chown root:root /home/imageuser
$ chmod 755 /home/imageuser

http://lists.mindrot.org/pipermail/openssh-unix-dev/2009-May/027651.html

5. imageuser 계정 쉘 접근 차단

/etc/passwd에서 imageuser 계정의 쉘을 /sbin/nologin으로 바꾼다.

imageuser:x:501:501::/home/imageuser:/sbin/nologin


6. sftp로 연결해서 확인

sftp로 연결해서 디렉토리를 확인해보면 /home/imageuser 디렉토리를 루트 디렉토리로 인식하는 것을 알 수 있다.

$ sftp imageuser@imageserver.mycompany.com
imageuser@imageserver.mycompany.com's password: 암호입력
sftp> ls -la
drwxr-xr-x    3 0        0            4096 Jun 17 03:56 .
drwxr-xr-x    3 0        0            4096 Jun 17 03:56 ..
....생략
drwxrwxr-x    4 501      501          4096 Jun 17 08:03 images
sftp> pwd
Remote working directory: /
sftp> 




+ Recent posts