- File ACL
ACL은 파일과 디렉토리의 확장 속성 중에 하나이다. setfacl 명령어를 사용해서 파일의 소유자나 그룹을 더 만들수 있다. 또한 확장 속성의 정보를 확인 하기 위해서 getfacl 명령어를 사용할 수 있다. 파일의 확장 속성은 Shadow Inode에 저장되어 있다.
- CMD
- getfacl /* 파일의 확장 속성정보를 보여주는 명령어*/
- setfacl /* 파일의 확장 속성정보를 설정하는 명령어*/
# getfacl file1
# setfacl -m [ACL] file1
-m 권한을 지정하거나 수정할 때 사용
-x 권한 삭제
-R 하위 디렉터리 파일까지 권한 변경
-b 권한 밀 mask 등 지정한 권한 전부 제거
- 사용법
# cd /test
# touch file1
# getfacl file1
|
# file: file1 # owner: root # group: root user::rw- group::r-- other::r-- |
|
# setfacl -m u::rwx file1
# getfacl file1
|
# file: file1 # owner: root # group: root user::rwx group::r-- other::r-- |
|
> chmod 명령어와 같은 기능을 가진다.
# setfacl -m u:user01:7 file1
# ls -l file1
-rwxrwxr--+ 1 root root 0 12월 29 06:35 file1 |
|
# gerfacl file1
|
# file: file1 # owner: root # group: root user::rwx user:user01:rwx group::r-- mask::rwx other::r-- |
|
# setfacl -m g:class1:7 file1
# getfacl file1
|
# file: file1 # owner: root # group: root user::rwx user:user01:rwx group::r-- group:class1:rwx mask::rwx other::r-- |
|
# setfacl -x u:user01 file1
# getfacl file1
|
# file: file1 # owner: root # group: root user::rwx group::r-- group:class1:rwx mask::rwx other::r-- |
|
# setfacl -m u:user01:0 file1
# getfacl file1
|
# file: file1 # owner: root # group: root user::rwx user:user01:--- group::r-- group:class1:rwx mask::rwx other::r-- |
|
# su - user01
$ ls -l /test/file1
|
-rwxrwxr--+ 1 root root 0 12월 29 06:35 /test/file1 |
|
> user01 사용자는 other에 속하므로 r 권한이 있다.
$ cat file1
|
cat: /test/file1: 허가 거부됨 |
|
> r 권한이 있음에도 읽기가 거부됐다. >> file acl에서 0으로 권한을 주었기 때문
$ exit
- 속성정보 파일 만들기
# getfacl file1
|
# file: file1 # owner: root # group: root user::rwx user:user01:--- group::r-- group:class1:rwx mask::rwx other::r-- |
|
# getfacl file1 > file.acl
# touch file2
# getfacl file2
|
# file: file2 # owner: root # group: root user::rw- group::r-- other::r-- |
|
# setfacl --set-file=file.acl file2
# getfacl file2
|
# file: file2 # owner: root # group: root user::rwx user:user01:--- group::r-- group:class1:rwx mask::rwx other::r-- |
|
> 여러 설정이 복잡하게 이루어져 있을 경우 편하게 사용 할 수 있다.
- mask, effective
mask : 가질 수 있는 최대 권한 > 다른 사용자가 어떤 권한을 가져도 mask 값을 넘을 수 없다.
effective : mask 값을 넘지 않고 사용할 수 있는 권한
# rm -rf /test/file*
# echo 1111 > file1
# setfacl -m u:user01:7 file1
# setfacl -m g:class1:7 file1
# getfacl file1
|
# owner: root # group: root user::rw- user:user01:rwx group::r-- group:class1:rwx mask::rwx other::r-- |
|
# setfacl -m m::6 file1
# getfacl file1
|
# file: file1 # owner: root # group: root user::rw- user:user01:rwx #effective:rw- group::r-- group:class1:rwx #effective:rw- mask::rw- other::r-- |
|
> user01과 class1 그룹은 사실 rwx 권한을 부여 받았지만 mask값이 rw- 이기 때문에 실질적으로는 rw- 권한만 부여 받는다.
# mkdir dir1
# getfacl dir1
|
# file: dir1 # owner: root # group: root user::rwx group::r-x other::r-x |
|
# setfacl -m d:u::7,d:g::7,d:o::7 dir1
# getfacl dir1
|
# file: dir1 # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:group::rwx default:other::rwx |
|
디렉터리안에 파일이 생성될때 디렉터리의 default acl 정보를 상속 받는다.
-> 생성 후 설정을 변경하면 다 변경되지 않는다. ( -R 옵션으로 해결 가능 )
'Security > Linux Server' 카테고리의 다른 글
SELinux / sudo / File ACL / lsattr,chattr CMD 비교 (0) | 2017.12.28 |
---|---|
lsattr / chattr CMD 사용법 (0) | 2017.12.28 |
SELinux (Secure Enhanced Linux) GUI 사용 방법 (CentOS 6.4) (0) | 2017.12.28 |
SELinux (Secure Enhanced Linux) 사용 방법 (CentOS 6.4) (0) | 2017.12.28 |
SELinux (Secure Enhanced Linux) 설치 방법 (CentOS 6.4) (0) | 2017.12.27 |