윈도우 서버에 퍼미션 조정하기






    익숙한 유닉스 방식의 권한 조정법과 윈도우의 권한 조정은 약간 방식이 비슷하면서도 다른데, 그 부분에 대해 자세하게 다뤄보도록 하겠습니다. 퍼미션에 관련해서 흔히들 이야기 하는 777, 707, 755 권한등의 뜻에 대해서 알아보고 윈도우에서는 어떻게 적용되는지 알아보도록 합시다.


    시작하기 전에 사족을 달자면, 윈도우 서버인 IIS는 각종 소스를 실행시킬 때 리눅스 처럼 권한 부여하는데 있어서 빡빡하지 않습니다. 왠만한 권한 설정은 따로 하지 않아도 윈도우에서는 적당히 다 돌아가더군요. 하지만 간혹 직접 퍼미션을 조정해야 하는 경우가 생기는데 그 대처법에 대해서 알아보도록 합니다. (특히 php의 Temp 폴더 설정시 권한설정이 필요한 경우도 있음.)





    유닉스의 퍼미션에 대해


    일단 퍼미션이 작용하는 구조에 대해서 알아봅시다. 

    퍼미션을 적용하는 명령어는 크게 두가지 입니다. 

    chown - 해당 폴더/파일의 소유자를 결정합니다.

    chmod - 해당 폴더/파일의 소유권(퍼미션)을 조정합니다.


    chown을 통해 소유자를 변경하고 chmod를 통해 사용 권한을 설정합니다. 이제 위에서 언급한 흔히 이야기 하는 777, 755등등이 여기에 해당합니다.


    chmod의 권한 설정에 대해 알아봅시다.

    일반적으로 권한은 rwx 로 이루어져 있고, r은 읽기, w는 쓰기, x는 실행권한입니다. 하지만 이것들을 숫자로 간단하게 표현을 할 수 있고, 각 숫자의 의미는 다음과 같습니다.

    1 - 실행 (x)

    2 - 쓰기 (w)

    4 - 읽기 (r)

    1, 2, 4 세 가지의 숫자를 가지고 1~7까지의 숫자를 고유하게 만들어 낼 수 있습니다. 이제 이 숫자를 통해서 권한을 간단하게 설정이 가능한데 숫자로 권한을 설정하는 것을 절대 모드라고 합니다.

    권한은 3자리 숫자로 이루어져 있습니다. 그리고 각 자리의 숫자는 개별적인 의미가 있습니다.

    세 자리중에 첫번째 자리는 소유자의 권한, 두번째 자리는 소유자가 속한 그룹의 권한, 마지막 자리는 다른 사용자(모든 사용자)에 대한 권한입니다.


    예를 들어 777 권한이면,

    7의 의미는 1 + 2 + 4  = 7 해서 1, 2, 4 권한을 모두 가지고 있습니다. 즉, 실행, 읽기, 쓰기 모두 가능합니다. 따라서 777권한은 소유자도 실행, 읽기, 쓰기를 할 수 있고 소유자가 속한 그룹의 모든 사용자 역시 같은 권한을 갖습니다. 또한 마지막 자리도 7이기 때문에 모든 사용자에 대해서 권한 역시 모든 권한을 가지고 있습니다.


    또 만약 755 라고 하면,

    소유자만 모든 권한을 가지고 있고, 그룹내 사용자와 다른 사용자들은 1 + 4 = 5 해서 쓰기는 불가능한 실행과 읽기의 권한만 가능합니다.


    흔히 FTP를 사용해서 권한 설정을 한다 그러면 이 숫자 모드를 이용해서 설정을 하고 이 절대 모드를 통해서 각종 커뮤니티에서도 권한을 설명하고 있습니다. 


    하지만, 그거 아세요? 윈도우 서버는 숫자 모드로 권한을 설정해도 바뀌지 않습니다.

    즉, FTP로 권한을 설정할 수 있는 것은 리눅스 같은 유닉스서버에서만 가능한 이야기 입니다.


    그럼 윈도우 서버는 어떻게 퍼미션을 설정해야 할까요?




    윈도우의 퍼미션 설정의 이해

     

    윈도우에서 FTP 클라이언트 프로그램을 이용해서 접속하고 권한을 설정해도 실제로 바뀌는 것은 하나도 없습니다. (뭔가 막 바뀌고 성공했다고는 하지만..)


    윈도우는 자체적으로 상당히 편리하고 강력한 GUI를 이용해서 권한설정 기능을 제공해 주고 있습니다. 단, 위의 유닉스 권한 설정은 전혀 다른 이야기가 됩니다. 윈도우에서 폴더별로 권한(퍼미션)을 설정하는 것은 조금 색다른데, 하드 포맷방식이 NTFS라면 더 세세한 다른 보안 방식을 제공합니다. 


    참고로 윈도우 서버의 권한 설정은 일반적으로 텔넷을 통해 권한 설정 변경이 불가능 합니다. 다른 리눅스 서버였다면 FTP 프로그램을 이용해서 권한을 간편하게 설정하면 되는데 윈도우 서버는 그 자체가 불가능 합니다. 원칙적으로는 외부 텔넷 및 프로그램을 이용해서 변경은 불가능 하지만, 원격 접속을 통해서 권한 설정을 하면 되기 때문에 조금 번거롭지만 원격으로 퍼미션 설정이 가능합니다.





    윈도우 퍼미션 설정하기


    윈도우의 경우는 다들 한번쯤은 본적이 있지만 제대로 설정은 해보지 않은 곳에 위치 합니다.


    권한(퍼미션)을 수정할 폴더를 선택하고 마우스 오른쪽 버튼을 눌러 속성을 클릭합니다. 또한 그중에 보안탭으로 들어갑니다.


    네, 윈도우의 퍼미션은 보안탭에서 설정을 합니다.



    일단 두가지 방식으로 설정할 수 있습니다. 위에 편집 버튼을 누르면 일반적인 보안 속성 설정을 합니다. 사용자에 대해서 간단한 권한을 설정합니다. 하드디스크기 NTFS방식이 아니라면 이 방법을 사용하시면 됩니다.



    간단하게 해당 사용자를 추가하여 그 권한을 설정해주시면 됩니다. 쉽죠?


    만약 NTFS 하드 포맷방식이라면 보안 탭에서 고급을 눌러 더 세세한 설정을 해줍니다. 고급 버튼을 클릭하면 다음과 같은 화면이 나옵니다. 여기서 소유자를 변경가능합니다. 유닉스에서 이야기하는 chown 명령어지요. 음.. 호불호가 갈리겠지만, 저의 경우에는 일일이 텔넷이나 터미널을 통해 명령어를 입력하는 것을 상당히 싫어하는 사람이고, 잘 까먹는 사람이라서 가급적이면 직관적이고 알아보기 쉬운 방식을 선호하는 사람입니다. 이 소유자 변경은 소유자에서 변경을 누르면 이 폴더를 소유하고 있는 사람을 변경합니다. 편리하죠.


    이래서 저는 퍼미션 관련된 부분도 윈도우가 더 마음에 드네요.



    그리고 사용권한 탭에서는 새로운 사용자 또는 새로운 그룹에 대해서 개별적으로 권한 설정이 가능합니다. 단순히 소유자 본인과, 소유자가 속한 그룹 그리고 모든사용자에 대한 권한만 설정이 가능한 유닉스 구조와는 많은 차이를 보입니다.

    임의의 개별 유저별로 권한 부여가 가능하며, 각 그룹에 대한 권한 수정도 가능합니다.


    사용권한을 줄 그룹이나 유저를 추가하기 위해 추가 버튼을 누릅니다.



    이중 보안 주체 선택을 클릭하여 권한을 새로 부여할 그룹이나 사용자를 선택합니다.



    그리고 권한을 설정해주면 됩니다. 유형과 적용 대상을 통해 권한을 부여 / 거부를 할 단위를 조정할 수 있습니다.



    그리고 우측에 고급 권한 표시를 클릭하면 더 세세한 설정이 가능합니다.



    그리고 감사 탭에서는 지정된 사용자 또는 그룹의 궤적을 추적합니다. 소위 이야기하는 로그 기능입니다. 앞으로 살펴볼 사용자를 추가한 후 그에 대한 로그를 확인해 볼 수 있습니다.



    마지막으로 유효한 액세스 탭에서는 사용권한을 확인 할 수 있습니다. 새로이 권한 설정을 따로 하지 않더라도 어떤 권한을 가지고 있는지 확인이 가능합니다.


    장점과 단점에 대해서 이야기를 하자면 윈도우 서버는 유닉스 - 리눅스 서버에 비해


    장점 

    1. 직관적으로 사용하기 쉬운 GUI 방식입니다.

    2. 간단하고 자세하게 설정이 가능합니다.

    3. 세세한 목록별로 권한지정이 가능하고 , 또 확인 가능합니다.

    4. 다양한 권한을 세부적으로 설정함.

    5. 실제로 서버를 운영하는 경우 퍼미션에 관해 큰 의미가 부여 되지 않음.


    단점 

    1. 원격 텔넷으로 변경불가능

    2. 일반적인 퍼미션 설정방법과 다름.

    3. 까다로움.

    4. 정보를 구하기 쉽지 않음.


    단점은 한 마디로 이야기 하자면 외부에서 쉽게 변경이 불가능 하며, 권한 설정에 대한 정보를 쉽게 구할 수 없어서 생소하기 때문에 오히려 더 어렵게 느껴지는 부분입니다.


    위의 단점 중 외부에서 원격으로 수정은 텔넷이나 FTP 클라이언트 프로그램이 아닌 원격접속 프로그램을 이용하면 편하게 설정 변경 가능합니다. 오히려 언제 어디서나 원격으로 변경하기 더 쉬워진것 같습니다.

    관련글 : 

    스마트폰 무료 어플로 윈도우 원격접속 / 원격제어하기

    RD Client - 원격 윈도우 종료 및 컴퓨터 끄기



    이 설정은 액세스 권한이 없는 폴더나 파일을 실행시키기 위해서 설정이 가능하며, 이 설정들은 사용자 계정을 통해서 접근 및 수정이 가능힙니다.










    Posted by Study For Us clamp2x
    • Favicon of http://sapphosound.com BlogIcon 사포
      2014.11.11 12:14 신고

      역시 이것도 포스팅하셨군요.. IIS에서 웹 서비스를 돌리려면 추가로 알아야하는 것들이 이만저만이 아니더라구요 ㅋㅋㅋ

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2014.11.11 13:01 신고

        윈도우도 은근 알아야 하고 신셩써야 할게 이만저만이 아닙니다. ^^
        조만간 체크리스트를 만들어 볼까 생각하고 있어요. ^^

    • 안되요 ㅠㅠ
      2015.02.01 18:08 신고

      어흐... 모든권한으로 지정해줘도 왜 xe 설치 들어가면
      [필수] XE의 설치 경로 또는 ./files 디렉토리의 퍼미션이 707이어야 합니다.
      라고 뜰까요... ㅠㅠ

    • 안되요 ㅠㅠ
      2015.02.01 18:20 신고

      문제 해결 했어용...
      xe가 설치된 폴더에 files 폴더를 생성한 후
      해당 폴더 권한 설정을
      users의 사용권한을 모든 권한으로 설정해놓으면 설치가 정상 진행 되네요

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.02.01 18:47 신고

        정확히는 IIS_iusrs 그룹만 권한주면 됩니다. ^^ 우측 상단에 체크리스트만 확인해도 다 내용이있어요~

    • Favicon of http://www.homzzang.com BlogIcon 홈짱
      2015.08.27 16:08 신고

      해당 폴더 파일의 소유자를 결정한다는 게 잘 이해가 안 갑니다.

      서버 총괄 아이디: root

      root/home/naver/html/그누보드 (FTP ID: naver)
      root/home/daum/html/그누보드 (FTP ID: daum)

      이렇게 두 개의 경로로 각각 홈페이지를 만들었다 칠 경우,
      home, naver, daum, html 폴더의 퍼미션은 각각 어떻게 설정해줘야 할까요?


      naver 와 daum 폴더의 소유자를 별도로 지정하지 않은 경우와
      각각의 폴더를 naver와 daum으로 소유자를 지정한 경우......
      그룹에 속한 사람과 일반 사용자는 누구를 지칭하는건지?


      애매해요....

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2015.08.27 17:25 신고

        해당 내용은 윈도우 서버를 기준으로 작성한 내용입니다.

        리눅스에서 님이 질문한대로 라면 naver라는 새로운 아이디와 daum이라는 새로운 아이디를 생성한 것으로 보이는데 html 폴더(또는 public_html)폴더가 생성되었다면 apache를 설치했을 겁니다.

        그렇게 되면 naver 폴더의 /home/naver/의 소유자는 naver(유저)가 됩니다. 그리고 이 때 그룹권한은 user 그룹안에 속하게 됩니다.
        또한 html(또는 public_html)폴더의 경우 소유자는 그대로 상위 폴더의 소유자가 그대로 상속이 되는데, 이경우라면 naver가 됩니다. 대신 그룹은 www-data(apache가 관할하는 웹서버 그룹입니다.)이 차지하게 됩니다.

        정리하자면
        /home/naver/ (소유자:naver / 그룹:user)
        /home/naver/public_html/ (소유자:naver / 그룹:www-data)
        /home/daum/ (소유자:daum / 그룹:user)
        /home/daum/public_html (소유자:daum / 그룹:www-data)

        이렇게 소유자와 그룹이 결정됩니다. 물론, 최고 관리권한을 가진 root계정은 소유자에 상관없이 모든 권한을 가지고 있습니다.^^

    • 질문
      2017.03.30 15:56 신고

      운영자님 system이랑 user 사용자는 혼자 사용하는 서버의 경우에도 필요한 것인가요? 최소한의 사용자만 남겨두고 다 삭제해도 되는지 알고 싶습니다. administrator와 개인 계정 2개만 남겨두고 다 지워도 될런지요?

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2017.03.30 19:43 신고

        서버 구축이 목적이 아니라면 그래도 상관 없습니다.
        또한 서버를 구축해도 사용할 계정 하나만 그룹을 잘 설정하면 되기 때문에 큰 문제 없습니다. ^^

티스토리 툴바