본문 바로가기

DevOps/Windows

[AD] 공유 파일 권한 관리

기업에서 보안이 필요한 내부의 파일들을 사용할 때 NAS나 AWS FSx와 같은 네트워크 드라이브를 사용한다.

그리고 내부의 파일들을 모두가 볼 수 있는게 아닌 특정  그룹, 사용자만이 파일을 사용할 수 있어야 한다.

- 로컬 그룹, 로컬 사용자, AD 그룹, AD 사용자 모두 동일하게 사용한다.

 

그러한 권한을 부여하는 명령어가 icacls이다. 

 

간단한 기본 권한

내가 사용을 많이 하는 권한은 아래 권한들이다.

 

아래 권한들을 조합하여 그룹이나 사용자에게 권한을 허용하거나 거부할 수 있다.

네트워크 드라이브를 마운트를 할 때 루트경로가 아닌 루트 하위의 경로라면 RX 권한이 있어야 마운트가 가능하다.

F 모든 권한
RX 읽기 및 실행 액세스
R 읽기 전용 액세스
W 쓰기 전용 액세스
D 삭제 

 

상속

윈도우에는 객체에 대해 상속이라는 개념이 존재한다.

쉽게 말해 부모객체가 가지고 있는 액세스 제어 목록을 자식개체가 동일하게 가져오게 됩니다.

이 때, 부모 객체는 디렉터리(폴더)이고 나머지 객체들은 될 수 없습니다.

 

디렉터리에만 적용됩니다.

(I) 상속 
(OI) 컨테이너가 상속
(CI) 상속만 사용
(NP) 상속 사용하지 않음

 

사용자를 예를 들어 명령어를 설명하지만 그룹이나 사용자나 동일하게 입력하면 된다.

 

 

사용자에게 <path>의 객체에 Read, Write, Delete 부여할 때 

ICACLS "<Path>" /grant User:(R,W,D)

 

사용자 ID가 아닌 SID로 부여할 때

SID 앞에는 앞에 *을 붙여야 적용이 가능하다

ICACLS "<Path>" /grant *s-1-1-0:(R,W,D)

 

기존에 부여된 권한을 변경할 때

/grant 옵션 뒤에 :r을 붙여 적용

ICACLS "<Path>" /grant:r User:(R,W,D)

 

부여된 권한을 제거할 때

- 허용된 권한을 제거 할 때 /remove:g 옵션 사용

- 거부된 권한을 제거 할 때 /remove:d 옵션 사용

ICACLS "<Path>" /remove:g User

 

상속 수준 설정

- /inheritance 옵션을 사용하여 상속 수준을 설정 할 수 있다.

/inheritance:e 상속 활성화
/inheritance:d 상속 비활성화, 상속 권한 유지
/inheritance:r 상속 비활성화, 상속 권한 제거

 

지정된 경로와 지정된 경로 하위에 대해 적용할 때

- /t 옵션을 사용하여 지정된 경로와 그 경로 하위에 모든 파일에 대해 동일하게 작업을 수행할 수 있다.

 

ex) 지정된 경로와 지정된 경로 하위에 존재하는 모든 파일에 대해서 사용자에게 Read, Write, Delete를 부여할 때 

ICACLS "<Path>" /t /grant User:(R,W,D)

ex) 지정된 경로와 지정된 경로 하위에 존재하는 모든 파일에 대해서 사용자에게 허용된 권한을 제거할 때

ICACLS "<Path>" /t /remove:g User

 

 

자세한 내용은 Microsoft 공식문서를 참고하면 될 것 같다.

 

 

icacls

지정된 파일에서 DACL(임의 액세스 제어 목록)을 표시하거나 수정하고 저장된 DACL을 지정된 디렉터리의 파일에 적용하는 icacls 명령에 대한 참조 문서입니다.

docs.microsoft.com