기업에서 보안이 필요한 내부의 파일들을 사용할 때 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
'DevOps > Windows' 카테고리의 다른 글
[WIN] PowerShell 로그 생성하기 (0) | 2022.05.19 |
---|---|
[AD] 객체 소유자 변경 (0) | 2022.05.15 |
[AD] Active Directory 그룹 생성 및 삭제 (0) | 2022.05.15 |
[AD] Active Directory 그룹 멤버 관리 (0) | 2022.05.15 |
[WIN] 윈도우 실행 명령어 (0) | 2022.05.15 |