windows ACL 확인 / acl 이란? / acl 에 대한 / 권한 제어 / permission / grant permission /
windows 의 icacls 사용법
ACL 확인
cmd 창에서 icacls "c:\Program Files"
를 하면 “Program Files” folder에 대한 현재 ACL 을 볼 수 있다.
f:\>icacls "c:\Program Files"
c:\Program Files NT SERVICE\TrustedInstaller:(F)
NT SERVICE\TrustedInstaller:(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(M)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
BUILTIN\Administrators:(M)
BUILTIN\Administrators:(OI)(CI)(IO)(F)
BUILTIN\Users:(RX)
BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\모든 제한된 응용 프로그램 패키지:(RX)
APPLICATION PACKAGE AUTHORITY\모든 제한된 응용 프로그램 패키지:(OI)(CI)(IO)(GR,GE)
위의 ‘()’(괄호) 안에 들어있는 값을 permission 을 줄때 쓰면 된다. 다음은 testfolder 에 대해서 ’everyone’에게 R(read-only access)를 주는 command 이다.
# testfolder 에 대해서 'everyone'에게 R(read-only access)를 부여
icacls testfolder /grant everyone:R /t /c
option 설명:
/t
: 현재 디렉터리 및 하위 디렉터리에서 지정 된 모든 파일에 작업을 수행합니다./c
: 파일 오류 불구하고 작업을 계속 합니다. 오류 메시지는 계속 표시 된다./grant
/grant:r
: 권한을 새롭게 replace 한다.:r
이 없으면, add 가 된다. 즉 현재 존재하는 permission 에 새로운 permission 을 추가하게 된다.
ACL
ACL 은 aceess control list 의 약자. list 에 있는 개별 permission rule 은 access control entry(ACE) 라고 부른다. 이것이 access 를 control 한다. 이런 access control list 들은 discretionary access control lists(DACLs) 라 부른다.
exporting, importing ACL
다음처럼 하면 acl 를 그대로 복사할 수 있다.
/t
넣으면, sub-directory 의 acl 까지 같이 저장한다. 이러면 restore 시점에도 같은 directory 구조를 가지고 있어야 한다.
icacls testfolder /save testfolder_acl /t
icacls testfolder /restore testfolder_acl
참고:
inheritace permissions, 상속 권한
만약 위에서 처럼 testfolder에 everyone:R
을 /t
를 써서 sub-directory 에 줬다. 그런데 만약 testfolder에 새로운 sub-directory 를 추가하면, 그 sub-directory 는 everyone:R
이라는 permission 을 갖고 있지 않게 된다.
이것은 testfolder에 상속가능한 permission 들을 주지 않았기 때문이다. 아래처럼 상속이 되는 권한을 줄 수 있다. 권한에 대한 내용은 ref. 2 를 참고하자.
D:\a>icacls testfolder /grant:r Everyone:(OI)(CI)W /t
처리된 파일: testfolder
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
D:\a>icacls d:\a\testfolder\
d:\a\testfolder\ Everyone:(R)
Everyone:(OI)(CI)(W)
BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
새롭게 생성된 sub-directory 에 ACE 가 추가되어 있는 모습
D:\a>mkdir .\testfolder\testsub2
D:\a>icacls ./testfolder/testsub2
./testfolder/testsub2 Everyone:(I)(OI)(CI)(W)
BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
/reset
D:\a>icacls ./testfolder /reset
처리된 파일: ./testfolder
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
D:\a>icacls ./testfolder/testsub2
./testfolder/testsub2 BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
D:\a>icacls ./testfolder/
./testfolder/ BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
1 파일을 처리했으며 0 파일은 처리하지 못했습니다.
D:\a>
댓글 없음:
댓글 쓰기