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) - 부모 컨테이너에서 상속된 권한