- 파일을 소유한 사용자와 사용자 그룹을 제외한 사용자와 그룹에게 별도로 권한을 부여할 수 있다.
- 권한이 부여된 그룹의 사용자 중 하나를 지정하여 권한을 제거할 수도 있고 권한의 상속도 설정할 수 있다.
접근 제어 리스트(ACL) 적용 유무 확인
[root@centos7 ~]# ls -l /acl/test.txt
-rw-r-xr--+ 1 root root 11 5월 10 14:53 /acl/test.txt
- ACL이 적용되어 있을 경우 '+' 기호가 출력
접근 제어 리스트(ACL) 정보 확인
getfacl file-name
[root@centos7 ~]# getfacl /acl/fileA
getfacl: Removing leading '/' from absolute path names
# file: acl
# owner: root
# group: wheel
user::rwx
user:user01:rwx #effective:r--
group::r-x #effective:r--
group:group01:rwx #effective:r--
mask::r--
other::r-x
mask
- mask 는 ACL을 필터링 해주는 마스크
- 마스크는 지정된 사용자와 그룹이 사용할 수 있는 최대 권한을 의미
- 현재 user01 사용자는 rwx 권한을 부여받았지만 실제로 사용할 수 있는 권한(effective)은 r--
접근 제어 리스트의 마스크(ACL mask)
- ACL의 마스크는 ACL에서 지정된 사용자와 그룹이 사용할 수 있는 최대 권한을 지정
- 지정된 사용자나 그룹의 권한이 마스크에 설정된 권한을 벗어나게 되면 필터링 되어 effective가 출력되고 해당 권한이 실질적인 권한으로 적용
- 또한 파일에 ACL이 적용되면 'ls -l' 명령에서 권한 필드 중 사용자 그룹의 권한은 ACL의 마스크의 권한으로 표시
- 따라서, ACL이 적용된 파일의 권한을 변경할 때는 chmod가 아니라 setfacl 명령으로 권한을 변경
기본 접근 제어 리스트(Default ACL)
- 기본 ACL은 디렉토리에만 설정할 수 있는 ACL
- 디렉토리에 기본 ACL을 설정하게 되면 파일을 생성할 때 기본 ACL이 상속
- 기본 ACL은 default 로 시작
- default 로 시작하는 ACL은 현재 디렉토리의 ACL에 영향을 주지 않고 해당 디렉토리 아래에 생성되는 파일에게 권한을 상속 시켜주는 역할
[root@centos7 ~]# getfacl /acl
getfacl: Removing leading '/' from absolute path names
# file: acl
# owner: root
# group: root
user::rwx
group::r-x
group:alluser:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:alluser:rwx
default:mask::rwx
default:other::r-x
텍스트 파일 생성 시
- default 디렉토리 밑으로 텍스트 파일을 생성할 때 불필요한 용도로 실행되지 않도록 실행 권한이 제거됌.
- 파일을 소유한 사용자의 권한에 실행 권한이 제거되고 마스크에도 실행 권한이 제거
서브 디렉토리 생성 시
- 생성된 디렉토리에도 ACL 설정까지 함께 상속
- 텍스트 파일처럼 실행권한이 제거되지 않고 동일하게 적용