본문 바로가기

Microsoft/Windows Server 2008

ICACLS로 사용권한 지정하기

icacls

지정된 파일들의 DACLs(discretionary access control lists)를 나타내거나 수정 할 수 있으며, 특정 디렉터리내의 파일에 지정된 DACLs가 적용된다.

/T 이름에 지정된 디렉터리 아래의 일치하는 모든 파일/디렉터리에서 이 작업을 수행하도록 지정합니다.

/C 어떠한 파일 오류의 경우에도 이 작업을 계속하도록 지정합니다. 오류 메시지는 그대로 표시됩니다.

/L 해당 대상에 대한 심볼릭 링크 자체에서 이 작업을 수행하도록 지정합니다.

/Q ICACLS가 성공 메시지를 표시하지 않도록 지정합니다.

perm은 다음 두 가지 형식 중 하나로 지정할 수 있는 사용 권한 마스크입니다.

 N - 권한 없음 / F - 모든 권한 / M - 수정 권한 / RX - 읽기 및 실행 권한 /

 R - 읽기 전용 권한 / W - 쓰기 전용 권한 / D - 삭제 권한

 

I.              /save /restore 실습

ICACLS 이름 /save aclfile [/T] [/C] [/L] [/Q]

    나중에 /restore와 함께 사용할 수 있도록 이름이 일치하는 파일 및

    폴더에 대한 DACL aclfile에 저장합니다. SACL, 소유자 또는

    무결성 레이블은 저장되지 않습니다.

)

1.        C:\>mkdir test\

2.        C:\>copy con test\testfile.txt

This is a testfile for icacls.

^Z  (컨트롤+Z를 입력한후 엔터를 입력한다.)

        1개 파일이 복사되었습니다.

3.        C:\>icacls test\testfile.txt (기본 상태의 퍼미션을 확인한다.)

test\testfile.txt NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

 

4.        C:\>icacls test\* /save testfile_aclfile.txt /T

5.        C:\>icacls test\testfile.txt /grant everyone:RX

6.        C:\>icacls test\testfile.txt

test\testfile.txt Everyone:(RX)

                  NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

7.        C:\>icacls test\ /restore testfile_aclfile.txt

8.        C:\>icacls test\testfile.txt (원래의 퍼미션으로 복원되어 있다.)

test\testfile.txt NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

 

II.              

ICACLS 디렉터리 [/substitute SidOld SidNew [...]] /restore aclfile

                 [/C] [/L] [/Q]

    저장된 DACL을 디렉터리의 파일에 적용합니다.

 

III.             

ICACLS 이름 /setowner user [/T] [/C] [/L] [/Q]

    일치하는 모든 이름의 소유자를 변경합니다. 이 옵션은

    소유권을 강제 변경하지 않고 takeown.exe 유틸리티를

    사용하여 변경합니다.

)

1.        net user chris chris /add (소유권이전을 위해 임의 사용자 생성)

2.        C:\>icacls  test\testfile.txt /setowner chris

 

IV.           

ICACLS 이름 /reset [/T] [/C] [/L] [/Q]

    ACL을 일치하는 모든 파일에 대해 상속된 기본 ACL로 바꿉니다

)

1.        C:\>icacls test\testfile.txt /grant:r everyone:RX

2.        C:\>icacls test\testfile.txt

test\testfile.txt Everyone:(RX)

                  NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

3.        C:\>icacls test\testfile.txt /reset

4.        C:\>icacls test\testfile.txt

test\testfile.txt NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

 

V.            

ICACLS 이름 [/grant[:r] Sid:perm[...]]

       [/deny Sid:perm [...]]

       [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]

       [/setintegritylevel Level:policy[...]]

 

    /grant[:r] Sid:perm은 지정된 사용자 액세스 권한을 허용합니다. :r을 사용하면 사용 권한이 이전에 허용된 모든 명시적 사용 권한을 대체합니다.:r을 사용하지 않으면 사용 권한이 이전에 허용된 모든 명시적 사용권한에 추가됩니다.

)  /grant:r /grant 의 차이

1.        C:\>icacls test\testfile.txt /grant:r everyone:RX

2.        C:\>icacls test\testfile.txt

test\testfile.txt Everyone:(RX)

                  NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

3.        C:\>icacls test\testfile.txt /grant:r everyone:D

4.        C:\>icacls test\testfile.txt

test\testfile.txt Everyone:(D)

                  NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

5.        C:\>icacls test\testfile.txt /grant everyone:RX

6.        C:\>icacls test\testfile.txt

test\testfile.txt Everyone:(RX,D)

                  NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

 

VI.           

    /deny Sid:perm은 지정된 사용자 액세스 권한을 명시적으로 거부합니다.

        지정된 사용 권한에 대해 명시적인 deny ACE가 추가되고

        모든 명시적 grant의 동일한 사용 권한이 제거됩니다.

)

1.        C:\>net user peter P2ter00 /add

2.        C:\>icacls test\testfile.txt /deny peter:F

3.        C:\>icacls test\testfile.txt

test\testfile.txt ITWITHGOD\peter:(N)

                  Everyone:(RX,D)

                  NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

 

VII.          

    /remove[:[g|d]] Sid ACL에 있는 모든 SID 항목을 제거합니다. :g

        사용하면 해당 SID에 허용된 모든 권한 항목을 제거하고 :d

        사용하면 해당 SID에 거부된 모든 권한 항목을 제거합니다.

)

1.        C:\>icacls test\testfile.txt /remove:g everyone

2.        C:\>icacls test\testfile.txt

test\testfile.txt ITWITHGOD\peter:(N)

                  NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

3.        C:\>icacls test\testfile.txt /remove:d peter

4.        C:\>icacls test\testfile.txt

test\testfile.txt NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\chris:(I)(F)

 

VIII.         

    /inheritance:e|d|r

        e - 상속할 수 있도록 설정합니다.

        d - 상속을 거부하고, 상속된 모든 ACE를 복사합니다.

        r - 상속을 거부하고, 상속된 모든 ACE를 제거합니다.

)

1.        C:\>icacls test\testfile.txt /reset

2.        C:\>icacls test\testfile.txt

test\testfile.txt NT AUTHORITY\SYSTEM:(I)(F)

                  BUILTIN\Administrators:(I)(F)

                  BUILTIN\Users:(I)(RX)

                  ITWITHGOD\Administrator:(I)(F)

 

3.        C:\>icacls test\testfile.txt /inheritance:r /grant administrator:F

4.        C:\>icacls test\testfile.txt

test\testfile.txt ITWITHGOD\Administrator:(F)

5.        C:\>icacls test\testfile.txt /reset

 

참고 ) 괄호 안 쉼표로 구분된 특정 권한 목록:

                DE - 삭제

                RC - 읽기 제어

                WDAC - DAC 쓰기

                WO - 쓰기 소유자

                S - 동기화

                AS - 액세스 시스템 보안

                MA - 최대한 허용

                GR - 일반 읽기

                GW - 일반 쓰기

                GE - 일반 실행

                GA - 일반 전체

                RD - 데이터 읽기/디렉터리 나열

                WD - 데이터 쓰기/파일 추가

                AD - 데이터 추가/하위 디렉터리 추가

                REA - 확장 특성 읽기

                WEA - 확장 특성 쓰기

                X - 실행/트래버스

                DC - 자식 삭제

                RA - 특성 읽기

                WA - 특성 쓰기

       

상속 권한은 모든 형식 앞에 올 수 있으며 디렉터리에만 적용됩니다.

                (OI) - 개체 상속

                (CI) - 컨테이너 상속

                (IO) - 상속 전용

                (NP) - 상속 전파 안 함

                (I) - 부모 컨테이너에서 상속된 권한