Linux

10. ACL(Access Control List, 접근제어목록)

jih0ssang 2023. 9. 18. 16:48

 ACL(Access Control List) 

접근 제어목록

 

linux unix :권한
- 파일, 디렉토리 permission : 모든 파일이나 디렉토리에 rwx
- 확장 권한   :setuid, setgid, sticky bit
- ACL  : access control list, 특정 사용자(또는 그룹)에게만 권한을 부여해주는 것입니다.


ACL은 절대경로가 안됩니다. 그래서 cd로 직접 해당 디렉토리로 이동해서 작업해야합니다.


ACL 설정 확인
$ ls -l

-rw-rw-r--  .  1 playdata playdata 0 Feb 22 11:36 test
◆ 없음 :ACL 설정되어있지 않음
◆ +      :ACL설정사항이 있음.


명령어
getfacl  : ACL 확인
setfacl  : ACL 설정 특정 사용자에게 권한 부여

getfacl  (filename)
setfacl  [option]  entry:name:perms  (filename)

[option]
◆ -m : modify.  변경할 때 반드시 넣어야 함.

entry
◆ m : 마스크
◆ u : 사용자
◆ g : 그룹
◆ o : other 
◆ default(*) 

name 
◆ 사용자명

perms
◆ 권한 - rwx


setfacl -m u:user01:rwx test
◆ user01에게 rwx 권한 부여


setfacl -m u:user01:r-- test
◆ user01이라는 u(사용자)에게 test 파일에 대한 r--권한 부여

getfacl test
=> 
# file : test
# owner: playdata
# group: playdata
user:: rw-
user:user01:r-- #effective: rw-  (실질적으로 있는 권한 rw-)
group::rw-
mask::rw-
other::r--

mask = 최소한의 권한을 부여해주기 위해서. 사용자가 가지는 최대치 권한. (가이드)
특정 사용자에게 rwx 권한을 부여한다고 하여도, umask가 rw-로 설정되어잇으면
실질적으로 적용되는 권한은 rw-이다.

mask를 제일 우선시하기 때문에,

mask에서 권한 할당 설정이 되어있지 않다면

권한을 아무리 부여해주려고 해도 부여되지 않습니다.

 

acl 제거
-x  : 특정 사용자가 그룹의 항목 삭제
-b  : 모든 acl 삭제
-k  : default  acl 삭제

 

setfacl -x g:wheel test_dir/test3
◆ test3파일에 wheel 그룹의 권한을 삭제
◆ 한 가지 항목만 acl 제거   (O:O :O 중에 한가지.)

setfacl -b test_dir/test3
◆ 모든 항목에 acl 제거

 

 

 

접근권한 상속하는 방법?

 

ACL을 default와 다르게 설정한다고 하여서, 
새로 만든 파일에 해당 ACL이 적용이 되지 않고 여전히 default가 부여됩니다.

해당 ACL을 적용시키려면(상속하려면) 어떻게 해야할까요?
→ 디렉토리에 d: 설정을 해주면 하위에 생성되는 파일/디렉토리에 자동으로 상속됩니다.
ex) setfacl -m  d:g:wheel:rwx  test_dir 

'Linux' 카테고리의 다른 글

12. 하드디스크 구조  (0) 2023.09.18
11. 스케쥴링(Scheduling)  (0) 2023.09.18
9. 아카이브(archive)와 압축  (0) 2023.09.18
8. 프로세스 관리 (Process Management)  (0) 2023.09.18
7. 쉘 메타 문자와 히스토리, alias  (0) 2023.09.18