반응형


    IIS 웹서버 그룹 확인하기



    IIS를 통해 웹서버를 구축하다보면 권한 문제로 곤란한 경우가 많습니다. 아니, 비단 윈도우의 문제뿐 아니라 리눅스에서도 서버를 구축하고 나면 권한 문제로 곤란을 겪곤 합니다. 윈도우에서 그룹이나 사용자 별로 권한을 부여하는 방법은 블로그에 있는 글로도 말씀드린 적이 있는데, 사실 몇몇 Ajax 관련 소스들에서 권한에 관련된 이슈가 발생하기도 합니다.


    웹서버에서 쓰고 편집할 수 있는 권한이 있어야 Ajax 기능을 온전히 사용할 수 있기 때문에 권한 관련 이슈는 매번 골머리를 썩게 만들죠.



    기본적으로 IIS에서 일반적인 쓰기 권한을 부여하기 위해서는 IIS_IUSRS 그룹에 권한을 부여하면 되는데, 그 원리는 이렇게 됩니다.


    웹서버인 IIS에서는 새 사이트를 만들게 되면 IIS에서는 새 사이트 이름으로 된 숨겨진 계정들을 만들게 됩니다. 이 때 확인하는 방법은 c:\사용자(영문: c:\users) 폴더에 들어가면 확인할 수 있는데 그 안에 보면 새 사이트를 만들때마다 계정이 추가 되는 것을 확인할 수 있습니다.


    또는 제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 사용자 프로필설정 을 클릭하면 아래와 같은 화면이 나오는데, IIS에서 사용하는 계정 정보를 알 수 있습니다.




    그 새로 만들어진 계정의 그룹은 IIS_IUSRS로 설정되는데 그 때문에 웹서버와 관련된 권한을 부여할 때는 IIS_IUSRS 그룹에게 권한을 부여하는 이유입니다. 


    하지만, IIS_IUSRS 권한을 모두 주었는데도 불구하고 pydio 같은 웹 소스를 처음 설치를 할 때, 권한과 관련된 이슈가 자주 발생합니다. 이럴 경우 IIS_IUSRS 보다 더 상위 그룹에 권한을 부여해야 하는데, 제 경험과 느낌상 알 수 있었던 부분을 설명드리고자 합니다.


    저도 경험을 통해 유추한 부분이라 잘못되었을 수도 있습니다. 혹시나 올바른 개념을 알고 계신다면 설명과 함께 지적 부탁드립니다. 좋은 공부하도록 하겠습니다.


    제가 유추한 부분은 이렇습니다. 

    Users 그룹 안에는 많은 유저 그룹들이 있고, 그 중에 웹서버를 담당하는 것이 IUSR, 그리고 그 안에 사이트 개개인의 유저 그룹은 IIS_IUSRS 인 것같습니다.


    그림으로 나타내면 이렇게 될 듯 합니다.





    Users 사이와 IIS_IUSRS 사이에 있는 IUSR 그룹은 IIS 웹서버가 속해있는 그룹입니다. XP까지는 IIS의 그룹으로 IUSR를 사용했고, XP 이후에는 IIS_IUSRS 그룹을 사용하고 있는데, 여전히 필요한 부분이 있습니다.


    실제로도 PHP 명령어 중에 WhoAmI 명령어를 이용하면 웹서버의 그룹을 알 수 있는데, 궁금한 분들은 한번 시도해 보세요.

    새 PHP 파일을 만든 후 다음과 같이 입력합니다. 


    <?php echo exec('whoami'); ?>

     이렇게 파일을 작성하고 웹서버에 올린뒤 브라우저를 통해 http://웹주소/whoami.php 파일을 실행시켜 보면 다음처럼 나옵니다. 혹시나 파일만드는게 귀찮으신 분들은 아래 파일을 이용하세요!

    whoami.php

    즉, 웹서버의 그룹을 IUSR 라는 것을 알 수 있습니다. XP이전에나 사용할 줄 알았는데, 여전히 IIS의 그룹은 IUSR 입니다.


    II_IUSRS그룹에 권한을 충분히 부여했는데도 불구하고 권한문제가 발생한다면 IUSR 그룹의 권한을 부여해본뒤 여전히 권한에 관련된 이슈가 발생한다면 USERS 그룹에 권한을 부여하면 대부분의 권한문제는 해결됩니다.


    권한에 대해서는 윈도우도 리눅스도 중요한 부분이기 때문에 잘 배워놔야 할 듯합니다.







    반응형
    Posted by clamp2x