반응형

    FTP 사용자별 폴더 만들기






    1. FTP 사용자별 폴더를 만들기 위한 준비


    FTP 서버를 사용하다 보면 사용자 별로 권한을 따로 줘야할 경우가 있습니다. 계정별로 가상화된 공간에서 전용 공간을 가질려면 필요한 부분이 있습니다.

    개인서버를 구축하는데에는 동영상, 문서, 사진 등을 각기 따로 저장할 수 있는 계정들을 만들어서 관리 할 수 있으면 더욱 좋기 때문에 계정들 여러가지 만들고 그에 따른 권한을 부여한는 것도 좋은 방법입니다. 아니면, 서버 공간을 나눔하는 경우에도 필요한 설정입니다. 다른 사람들이 같이 사용하기 위해서는 확실하게 보안이 지켜져야 하는 부분이 있기 때문에 사용자들 별로 나눠놓을 필요가 있습니다.


    지금 까지는 단순히 FTP 계정을 혼자 사용한다는 것을 전제 설명을 하였다면 이제는 사용자 별로 또는 용도 별로 각각 나누어서 사용할 수 있도록 하는 방법에 대해 설명드리려고 합니다.


    윈도우에서 기본 제공하는 서버인 IIS를 이용하여, 본격적으로 설명하기 전에 이전에 FTP 사이트를 만들고 권한을 주는 방법을 확인해주시기 바랍니다. (어차피 간략하게 다시 설명합니다.)



    사용자별로 권한을 부여하는 것이기 때문에 사용자에 대해서 설명을 드리겠습니다.


    여기서 FTP에 접속 가능한 사용자 계정은 4개 입니다.

    1. clamp2x (어드민 계정으로 전체 웹사이트를 관리하는 계정입니다.)

    2. user1 (임시 계정)

    3. user2 (임시 계정)

    4. user3 (임시 계정)


    결과적으로는 user1 계정과 user3 계정을 사용하지 않습니다. 원래 있던 FTP 사이트에 권한을 변경하고 폴더별로 설정을 한뒤 서버를 재시작 안하고 막 했더니 권한이 아예 꼬여버렸습니다.

    원래는 user1을 어드민 계정으로 소개를 하고 하려고 했는데, 꼬여버려서 원래 제가 쓰고 있던 계정인 clamp2x 계정과 남은 계정 user2 계정을 이용하여 설명드리겠습니다. 두 개의 계정만 있어도 충분하게 설명이 됩니다.

    user1과 user3을 적은 이유는 캡쳐를 했기 때문에 -_-;;;입니다.



    2. 사용자 계정 새로 만들고 폴더 세팅하기


    사용자 계정을 만들기 위해 바탕화면의 컴퓨터에서 마우스 오른쪽 버튼을 눌러서 관리로 들어갑니다. (관리자 권한 필요합니다.)

     


    이 중에서 컴퓨터 관리(로컬) > 로컬 사용자 및 그룹 > 사용자 에 들어가셔서 마우스 오른쪽 버튼을 누른 후  새 사용자를 만들어 줍니다.



    만드는 과정은 지난 시간에도 설명한 적이 있기 때문에 자세하게 설명은 생략하도록 하겠습니다.



    사용자 이름암호, 그리고 다음 로그온 시 사용자가 반드시 암호를 변경해야 함 부분의 체크를 지워 줍니다.



    그리고 소속 그룹이 기본으로 Users 그룹에 들어가 있는데, 먼저 IIS_USRS 그룹을 추가하고 Users 그룹은 삭제합니다. (이유는 컴퓨터 켜고 로그온시 다른 사용자를 보이지 않게끔 하기 위함입니다.)



    이렇게 사용자를 만들어 주었으면 사용자별 폴더도 만들어 줘야 겠지요? 그 부분은 하단에서 더 자세하게 설명하도록 하겠습니다. 일단 폴더는 사용자 이름이 들어간 폴더로 만들어 줍니다.

     


    이 포스팅 내용에서 웹 사이트 전쳋를 관리하는 루트 폴더는 c:\web 입니다. 여기에 사용자 이름으로 된 폴더를 생성 합니다. 이 사진에서 보이는 예는 user1입니다.


    뒤에 추가로 설명할 부분이지만 여기서 먼저 폴더를 만드시고 나중에 다시 설정하실까봐 간략하게 먼저 말씀드리면, c:\web이라는 루트 폴더에 LocalUser라는 폴더 먼저 만들어 주시고 그 하위 폴더로 사용자별 폴더를 만드시면 두 번 일을 하지 않아도 됩니다. 그리고 어드민 계정이 될 계정 폴더는 생성 안해주셔도 됩니다.


    예) c:\web\LocalUser\user1




    3. IIS에서 FTP 사이트 설정하기


    기존에 있던 FTP 사이트를 삭제하시고 다시 사이트를 만드는 방법을 추천드립니다. (기존에 있던 것들로 변경을 하면 각 사이트 들의 실제주소를 일일이 변경해야 할지도 모릅니다.) 저도 여기에서 새 FTP 사이트를 만들었으며, 실제 주소를 c:\web\localhost\ 로 설정하였습니다.



    새 FTP 사이트를 만들었으면 권한 부여 규칙에 들어가서 각 계정별로 권한을 부여 합니다.



    우측의 허용 규칙 추가 또는 마우스 오른쪽 클릭을 해서 허용 규칙 추가를 클릭해 줍니다. 



    그리고 지정한 사용자 (아까 만들어 놓았던 사용자)를 추가 합니다. 그리고 사용 권한은 읽기/쓰기 모두 체크해줍니다.

    한가지 팁을 드리자면, 앞으로 계정을 추가해도 IIS_IUSRS 그룹에 넣을 것이기 때문에 일일이 추가하기 보다는 아예 지정한 역할 또는 사용자 그룹을 선택하시고 IIS_IUSRS를 추가하는 방법도 있습니다. 이것은 IIS_IUSRS 그룹에 있는 사용자를 모두 추가해고 권한을 설정해 줍니다.


    권한을 먹였으면 이제 본격적으로 사용자 별로 폴더를 지정해 봅시다.

    FTP 메뉴중에 FTP 사용자 격리를 클릭해 줍니다.



    이 목록들 중에서 사용자 이름 디렉터리(전역 가상 디렉터리 사용 안 함)이라고 되어있는 것을 선택하고 우측에 적용을 눌러줍니다.



    각 부분에 대해 추가로 설명을 드리겠습니다.

    - FTP 루트 디렉터리

    이것으로 선택하게 되면 모든 사용자가 접속을 하면 (익명인증도 설정하셨다면 익명까지도) 바로 루트 폴더를 보여 줍니다. 여기서 루트 폴더는 c:\web이기 때문에 그 폴더 내용이 모든 사람들에게 고스란이 보여지게 됩니다.


    -사용자 이름 디렉터리

    루트 폴더 내에 사용자 이름과 같은 이름의 폴더 부터 보여줍니다. 만약, user1로 로그인 하였다면 c:\web\user1폴더를 먼저 보여주게 됩니다. (아래와 같은 경로의 폴더)


    이것은 단순히 폴더만 먼저 보여주는 것이지, 그 폴더만 사용가능한 것이 아닙니다. 루트 폴더에 접근을 할 수 있기 때문에 있으나 마나한 기능입니다. (만약, 동영상, 문서, 사진등 용도별로 계정을 설정했다면 유용하겠네요.) 또한 계정과 같은 이름의 폴더가 없는 경우에는 루트 폴더를 보여줍니다.

    익명 계정을 사용하신다면 기본 폴더 이름은 default로 설정하셔야 합니다.


    이 두가지 방법은 둘 다 모든 사용자가 루트 폴더에 접근을 할 수 있습니다.




    사용자 별로 폴더를 따로 사용을 할려면 사용자 격리를 해야 합니다.

    - 사용자 이름 디렉터리 (전역 가상 디렉터리 사용 안 함)

    LocalUser 폴더 안에 사용자 이름으로 된 폴더에 접속을 하고 그 보다 상위 폴더에는 접근을 할 수 없습니다.

    예를 들어 user1으로 접속을 하였다면 c:\web\LocalUser\user1 폴더로 접속을 합니다. 만약 계정과 같은 이름의 폴더가 없다면 접속을 할 수없습니다.

    그리고 이 설정은 가상 디렉터리를 추가해서 사용을 할 수 있습니다. 즉, 실제로 폴더를 만드셔도 되고 아니면 IIS내에서 가상 디렉터리를 추가하셔도 됩니다. 본 포스팅은 이 방법으로 설명드리기 때문에 추가로 더 설명드리겠습니다. 

     

    -사용자 이름 실제 디렉터리 (전역 가상 디렉터리 사용)

    이것도 역시 LocalUser 폴더 안에 계정과 같은 이름의 폴더로 접속을 합니다. 위와 비슷하지만 이 설정은 가상 디렉터리로는 설정을 할 수 없고, 실제 디렉터리만 설정을 해야 합니다.


    두 가지의 차이점은 가상 디렉터리를 사용할 수 있으냐, 없느냐의 차이입니다. 근데 웃긴게 전역 가상 디렉터리라는 것이 사용자 계정 폴더보다 더 상위 폴더를 가상 디렉터리로 잡았을 때 접근이 가능하냐 불가능 하냐, 전역 설정이 되어있으면 가능하고 없으면 불가능 하다 라는 것인데  후자의 경우는 가상디렉터리는 인식을 안하지만 가상 디렉터리는 인식을 하겠다 라는 부분에서 이미 오류가 있습니다.

    제가 잘 이해를 못하는 것인지 모르겠는데 어쨋든 이렇게 저렇게 설정 해보니 앞으로 설명릴 방법으로 설정해야 제대로 폴더 목록이 보여지더군요.


    -Active Directory에 구성된 FTP 홈 디렉터리

    Active Directory는 추가로 설치해야 하는 프로그램입니다. 사용자별로 용량을 제한을 주는 것인데, 일단 서버자체의 속도가 굉장히 느려진다고 합니다. 기본적으로 서버자원을 많이 차지 한다고 하기에 아예 설치를 안하고 있습니다. 

    다음 포스팅에 각 계정별로 용량 제한 두는 것도 설명드리겠습니다.


    -사용자 지정

    ApplicationHost.config 파일을 직접적으로 설정합니다. 지식이 상당이 있어야 하며, 무엇보다 귀찮고 어려워 보이니 PASS!



    사용자 이름 디렉터리 (전역 가상 디렉터리 사용 안 함)을 선택하시고 난 다음에 추가로 해야 할 일이 있습니다.


    사용자 계별 폴더를 생성하는데, 저는 폴더를 이렇게 잡았습니다. c:\web\localhost(임의의 폴더)\LocalUser\계정이름 형태로 만들었습니다. 사실 테스트 목적으로 루트 폴더인 c:\web보다 하위 폴더를 하나 잡고 그 안에 LocalUser폴더를 만들었습니다.


    여기서 중요한 것은 어드민 계정의 폴더는 만들이 않고, 가상 디렉터리로 설정 합니다. 

    한번 정리를 하자면 이렇습니다.

    c:\web 이라는 루트 폴더 안에 앞으로 FTP 전용 폴더로 사용할 localhost라는 폴더를 임시로 만들었습니다. 그리고 그 안에 LocalUser 폴더를 만들고 각각의 유저 이름으로 된 폴더를 만들었습니다.

    c:\web\localhost (FTP 루트 폴더)


    user1 - c:\web\localhost\LocalUser\user1

    user2 - c:\web\localhost\LocalUser\user2

    user3 - c:\web\localhost\LocalUser\user3

    이런 식으로요. 그리고 어드민 계정의 이름의 폴더를 만들지 말아야 합니다.


    그럼 어드민 계정은 어떻게 추가를 하느냐, 가상디렉터리 추가를 통해 웹 서버의 최상위 루트를 지정해줄 겁니다.



    FTP 디렉터리 목록에서 그 중 LocalUser를 선택한 뒤 오른쪽 버튼을 눌러서 가상 디텍터리 추가를 눌러줍니다.



    중요합니다!


    별칭은 반드시 사용자 계정 이름으로 해주셔야 합니다.

    그리고 실제 경로서버의 루트 폴더로 지정해주시면 됩니다. (예 - c:\web)


    어드민 계정만 신경써서 설정을 해주시면 나머지 유저들의 폴더는 실제 폴더로 존재하기 때문에 모든 설정이 완료 됩니다.



    트리를 쫙 펼쳐보면 clamp2x(어드민계정)은 가상 디렉터리로 잡아서 웹 서버 루트 폴더 목록이 보이네요. 그리고 user2의 폴더는 제대로 나오는지 확인하기 위해 "임시용" 폴더를 만들어 놓았습니다.




    4. FTP 프로그램을 이용해 접속하기


    이제 FTP 클라이언트 프로그램을 통해 접속을 해봅시다. 사용된 프로그램은 파일질라 입니다.


    먼저, 일반 계정인 user2 계정으로 접속해 보았습니다. 실제 경로로 지정되어 있으며, 그 디렉터리 안의 내용인 "임시용" 폴더가 잘 보이네요.



    이번엔 어드민 계정으로 접속해 봅니다. 가상 디렉터리로 설정해 주었는데 제대로 목록이 표시가 되는지 확인해봅시다.



    파일 목록이 제대로 보여지네요. 혹시 가상 디렉터리라서 폴더가 제대로 만들지 못하거나 업로드를 할 수 없거나 해서 테스트도 해봤는데, 정상적으로 잘 작동하네요.


    FTP 접속하면서 사용자 별로 각기 구성하는 부분이 필요할 수도 있고, 필요 없을 수도 있습니다. 윈도우로 서버 자원을 꽤 괜찮게 맞추고 웹 서버로 공간 나눔까지 하실려면 반드시 필요한 기능이기 때문에 포스팅을 해봤습니다.


    그럼 다음번에는 사용자 별로 계정 공간을 정해서 사용하도록 하는 설정법에 대해 적어보도록 하겠습니다.



    반응형
    Posted by clamp2x