ABOUT ME

이 곳에 찾아와주신 모든 분들께 제 문서가 도움이 되길 진심으로 바랍니다.

Today
Yesterday
Total
  • 우분투 16.04에서 SFTP 관리자와 유저를 따로두는 법
    리빙포인트 2017. 4. 19. 03:31

    먼저 본인이 서버에서 먼저 거친 과정임을 알린다.

    Server: Ubuntu 16.04


    SFTP를 구축한 후 한 계정이 업로드, 다운로드, 폴더관리 전부다 하는게 싫어서 이걸 분리하고 싶던 탓에 이짓을 하게 됐다. 필요한 사람이 있을진 모르겠지만....


    먼저 현 SFTP를 어떻게 관리할 것인지에 대한 구상을 했다. 그래서 다음과 같이 나누었다.

    유저: 업로드와 수정은 불가능, 다운로드만 가능

    관리자: 업로드, 다운로드, 수정 모두 가능


    그 후, 저걸 세팅하려면 뭐가 필요한지 검색해봤다. 찾아보고 나왔던 그 리스트들은 다음과 같다.

    ① 파일의 owner, group, others를 설정하면 된다

    ② umask를 설정해서 관리자가 다음에 파일 업로드/다운로드를 할때 좀 덜귀찮게 하자


    그럼 이제 실행에 옮겼다. 과정은 다음과 같다.

    ① useradd로 관리자 계정을 하나 만들기

    ② sftp그룹을 만들고 관리자 계정 추가하기

    ③ 파일의 owner를 관리자로 하고 액세스는 sftp그룹 모두 할 수 있게 하기

    ④ 테스트 후 umask 주기


    그럼 각각 어떻게 했는지 입력하도록 한다.


    ① useradd로 관리자 계정을 하나 만들기는 다음과 같이 수행했다.


    $ useradd "관리자계정" -s /sbin/nologin


    adduser와 useradd의 차이는 루트 디렉토리, 로그인 쉘 등 설정을 해주느냐에 따라 다르다. 

    useradd쪽이 일일이 해야한다. 자세한 사항은 adduser useradd difference를 치면 나온다.


    또한 관리자계정이 로그인하는걸 원천 막기위해 쉘을 nologin으로 설정했다.

    찾다보니 /sbin/nologin과 /bin/false가 다르던데 그 차이는 아래의 링크로 대신한다.


    요약하자면 nologin은 


    출처: http://faq.hostway.co.kr/?mid=Linux_ETC&page=2&document_srl=1624

    출처: https://unix.stackexchange.com/questions/10852/whats-the-difference-between-sbin-nologin-and-


    /bin/false를 사용하면: 서버-클라이언트 간 통신하는 모든 연결을 거부함

    /sbin/nologin을 사용하면: 시스템환경, FTP환경에 따라 접근이 될 수도, 안될 수도 있음


    ② sftp그룹을 만들고 관리자 계정 추가하기


    $ groupadd "sftp그룹"

    $ usermod -g "관리자계정"


    이러면 그룹을 만들고 관리자계정을 하나 만들게 된다. 


    ③ 파일의 owner를 관리자로 하고 액세스는 sftp그룹 모두 할 수 있게 하기


    $ chown -R "관리자계정":"sftp그룹" "sftp경로/"


    이러면 하위디렉토리까제 모두 권한이 변경가능해진다.


    그런데 sftp경로 하위의 디렉토리 리스팅이 아예안되어서 이유를 찾아봤다. 권한을 안준것도 아닌데 왜 SFTP에 안나올까? 이유는 바로 이것이었다.


    "(중략) 어느 디렉토리로 들어가는 것(cd 명령을 이용하여)은 그 디렉토리를 실행하는 것과 같다. 그래서 디렉토리의 정상 권한은 755이지 644가 아니다: "


    출처: http://www.linuxfocus.org/Korean/January1999/article77.html


    ④ 테스트 후 umask 주기


    Ubuntu 16.04 환경 내의 umask 기본값은 022였다. 구태여 손댈 필요도 없이 내가 원하는 umask값이라 냅뒀다. 환경값은 /etc/login.defs에서 볼 수 있다. 해당 환경값은 시스템 전체 계정에 대해 general하게 적용됨을 기억하도록 하자.


    출처: http://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask




    잘못된 점 및 오타, 다른 모든 의견은 댓글로 항시 받습니다.. ^^

Designed by Tistory.