본문으로 바로가기

고급 권한 관리

category MLOps/Linux 2022. 1. 24. 22:52

1. 확장 권한

- 기본 권한인 r, w, x 이외의 기능 사용 가능하도록 확장된 권한

 

1) 확장 권한의 종류

가) setuid

- 실행권한이 있는 바이너리 파일 또는 스크립트 파일에만 사용

- setuid가 설정되어 있는 파일을 실행하면 사용자가 아니라 파일을 소유하고 있는 사용자의 권한으로 프로세스 실행

- setuid가 설정되어 있으면 실행 권한이 x 대신에 s로 표시

 

나) setgid

- 명령을 실행할 때 프로세스의 사용자 그룹이 파일의 사용자 그룹으로 실행

- 일반적으로 바이너리 파일보다 디렉토리에 설정하여 사용하는 경우가 많음

 

다) sticky bit

- 파일을 소유한 사용자만 파일 삭제 가능

- 기타 사용자 권한의 실행권한에 설정

 

2) 확장 권한 설정

# setuid: u+s(u-s)
# setgid: g+s(g-s)
# sticky bit: o+t(o-t)
chmod u-s /bin/passwd

 

2. 접근 제어 리스트 (Access Control List; ACL)소개

- 파일을 소유한 사용자와 사용자 그룹을 제외한 사용자와 그룹에게 별도로 권한 부여, 상속 등 가능

- default ACL: 디렉토리에만 설정 할 수 있는 ACL

# 적용 유무 확인
ls -l

# 예시
-rw-r--r--. 1 root root    0  3월  6 21:00 filea (적용 X)
-rw-rw-r--+ 1 root root  0  3월  6 21:00 fileb	(적용 O)

# 정보 확인
getfacl [option] <file-name>

# 설정
setfacl [option] ENTRY:NAME:PERMS <file-name>

# ENTRY:NAME:PERMS
사용자 u::권한
소유그룹 g::권한
기타사용자 o::권한
특정사용자 u:사용자명:권한
특정그룹 g:그룹명:권한

# ENTRY:NAME:PERMS (default ACL)
사용자 d:u::권한
소유그룹 d:g::권한
기타사용자 d:o::권한
특정사용자 d:u:사용자명:권한
특정그룹 d:g:그룹명:권한

# (일반 ACL) ACL 설정
setfacl -m ACL_엔트리 파일

# (일반 ACL) ACL 제거(하나의 일반 ACL 엔트리만 제거)
setfacl -x ACL_엔트리 파일

# (일반 ACL) ACL 전체 제거
setfacl -b 파일

# ACL mask 값 설정
setfacl -m m::권한 파일

# (일반 ACL) 디렉토리와 디렉토리 하위파일에 한번에 일반 ACL 설정
setfacl -R -m ACL_엔트리 디렉토리

# (Default ACL) ACL 설정
setfacl -m d:ACL_엔트리 디렉토리
setfacl -d -m ACL_엔트리 디렉토리

# (Default ACL) ACL 제거(하나의 일반 ACL 엔트리만 제거)
setfacl -x ACL_엔트리 디렉토리

# (Default ACL) ACL 전체 제거
setfacl -k 디렉토리
# 디렉토리에 설정된 Default ACL만 제거

'MLOps > Linux' 카테고리의 다른 글

Systemd  (0) 2022.01.26
논리 볼륨(Logical Volume) 관리  (0) 2022.01.26
디스크 관리 및 파일시스템  (0) 2022.01.25
작업 스케줄링  (0) 2022.01.25
사용자 및 그룹 관리  (0) 2022.01.24