기본 권한만으로는 다양한 대상에 대한 구체적인 권한을 설정할 수 없음 (소유자, 소유그룹, 기타사용자)
다양한 대상을 지정하여 권한을 설정할 수 있음
특정 사용자
특정 그룹
ACL 관련 명령어
getfacl <대상> : 대상에 설정된 ACL 정보를 확인
setfacl <ACL옵션> <대상> : 대상에 ACL 정보를 입력
옵션
-m : 설정할 ACL 정보 입력/수정
분류: u(user), g(group), m(mask)
대상: 특정 대상의 이름/UID/GID, 마스크는 이 부분 비움 (m::)
권한: r, w, x, -(---)
-x : 특정 ACL 항목 제거. 항목 삭제 시 권한 부분은 명시할 필요 없음
-b: ACL 전체 삭제
mask : ACL 설정시 마스크 항목이 자동으로 생성. setfacl로 설정한 사용자에게 권한이 적용되도록 mask 값이 자동 설정. mask는 소유자를 제외한 나머지 전부에게 적용
ACL의 마스크 값의 종류: 일반파일(rw,r,-) 디렉토리(rwx,rx,-)
마스크가 현재 설정되어있는 ACL의 권한보다 적을 경우 effective(실효권한)을 따로 표기해줌
파일의 소유자인가? Y → 소유자 권한 사용
파일의 소유그룹인가? Y → 소유그룹 권한 사용
기타 사용자 권한 사용
파일의 소유자인가? Y → 소유자 권한 사용
파일에 이 사용자에 대한 ACL이 설정되어 있는가? Y → 해당 ACL 사용
파일의 소유그룹인가? Y → 소유그룹 권한 사용
파일에 이 사용자의 그룹에 대한 ACL이 설정되어 있는가? Y → 해당 ACL 사용
기타 사용자의 권한 사용
디렉토리에 설정되는 ACL
디렉토리 내에 생성되는 파일들에 기본적으로 적용되는 ACL\
상속되는 특징이 있음
Default ACL 은 ACL과 다름: 디렉토리 자체의 ACL을 별도로 설정하고, 디폴트 ACL설정
설정방법
기존 acl 설정방법과 동일
분류 앞에 d: 추가
ex) setfacl -m d:u:encore:rw dirA
삭제방법 동일 : -x d:u:encore
디폴트 ACL만 전부 삭제 : -k
그룹에 소속시킬 사용자와 UID : ironman(10001),captain(10002),hulk(10003),thor(10004), spiderman(10005)
사용자의 홈 디렉토리 : /home/avengers/[사용자명]
사용자의 쉘 : /bin/bash
# mkdir /home/avengers 사용자 홈 디렉터리 생성
# useradd -D -b /home/avengers 기본 홈 디렉터리 경로 위치 설정 변경
# useradd -u 10001 ironman 사용자 추가
# useradd -u 10002 captain
# useradd -u 10003 hulk
# useradd -u 10004 thor
# useradd -u 10005 spiderman
그룹 이름 : avengers
그룹 GID : 10000
# groupadd -g 10000 avengers 그룹 생성
# usermod -G avengers ironman 기존 사용자 보조그룹 정보 변경
# usermod -G avengers captain
# usermod -G avengers hulk
# usermod -G avengers thor
# usermod -G avengers spiderman
# mkdir /shield 공유 디렉터리 생성
# chmod 770 /shield 권한 설정
# chgrp avengers /shield 소유 그룹 변경
# chmod 3770 /shield 특수 권한 부여
# mkdir /home/villain 디렉터리 생성
# useradd -D -b /home/villain 디렉터리 베이스 경로 변경
# useradd -D -e 2021-12-31 만료일자 설정
# useradd -D 기본 설정 확인
# useradd -u 20001 thanos 사용자 생성
# chage -m 1 -M 30 -W 7 -I 15 -E 2021-10-31 thanos
ironman$ touch /shield/.security.txt 아이언맨 사용자로 파일 생성
ironman$ chmod 600 /shield/.security.txt 권한 변경
ironman$ cp /bin/vim /shiled/vim2 파일 복사
ironman$ chmod 4750 /shield/vim2 권한 설정 변경
Root 사용자의 권한으로 다음 각 항목을 설정하시오.
# mkdir /endgame 디렉터리 생성
# chmod 740 /endgame 권한 변경
# setfacl -m group:avengers:rwx /endgame/
# setfacl -m d:g:avengers:rwX /endgame/
# setfacl -m m::r /endgame/spoiler.txt
# setfacl -m u:hulk:- /endgame/scenario.txt
# setfacl -Rm u:thanos:rwX /endgame/