ACL(Access Control List)
분류
setfacl Option
-b : 초기값 (모든 권한 초기상태)
-k : default삭제
일반 파일의 ACL
#>touch /root/file1
#>getfacl /root/file1
ACL 설정
g:<group_name>: r | w | x >> 그룹이름
m:: r | w | x >> Other 사용자
#>getfacl /root/file1
#>ll /root/file1
user밑에 권한설정이 생겼으며
파일의 권한옆에 [ + ]기호가 생겼다.
여기까지는 이해를 했는데 그룹권한자리에 rw-가 되어있다.
ACL을 설정하면 그룹권한자리는 Mask의 권한을 표시하는자리로 바뀌게 된다.
따라서 ACL을 설정하면 그룹권한은 getfacl로만 확인이 가능하다.
이때 한가지 문제가 발생한다.
소유그룹의 권한을 변경했음에도 적용되지 않았다.
심볼릭방식으로도 해봤는데 마찬가지로 적용되지 않았다.
* ACL이 설정되었으면 이 명령어는 MASK의 권한을 변경하는 커멘드로 바뀌게 된것이다.
이렇게 setfacl 명령어로 소유자, 소유그룹의 권한을 변경할 수 있다.
특정 ACL 삭제
전체 ACL 삭제
#>setfacl -m u:user01:rwx /root/acl
#>setfacl -b /root/acl
: getfacl setfacl의 기능은 비슷하다.
하지만 디렉터리 같은경우 하위 파일이 존재할 수 있기에 권한상속에 대해 알아보자!
#권한상속
유저> user01사용자에게 default값으로 /root/acl 디렉터리의 생성되는 하위 파일, 디렉터리에 권한을 부여한다.
#결과
default권한이 여러개 생겼다.
#default권한의 변경방법
앞에 default: 를 붙여서 권한을 붙여주면 된다.
또한 /root/acl의 생성될 하위 파일들에만 적용을 했지 디렉터리 자체의 권한을 변경하지 않았으므로
권한이 표시되는 중앙자리에는 group권한이 표시된다.
#결과
하위에 디렉터리를 만들어놓으면 /root/acl에서 default로 명세된 권한을 부여받았다.
디렉터리 같은 경우는 그대로 모든 권한을 상속받았는데
일반파일 같은 경우는 x( 실행권한 )를 자동으로 삭제시켜놓고 권한이 생성되으며 default권한도 사라졌다.
#삭제
대상 : /root/acl/dir1
1)디렉터리 자체권한에 대한 삭제
#>setfacl -x u:user01 /root/acl/dir1
2)default 권한에 대한 일부분 삭제
3)default 권한에 대한 전체 삭제
mask : r–로 변경해줬더니 상태는 이렇게 되었다.
mask : r–
user : rw-
group : rw–
인데 #effective:r– 라는 문구가 생겼다.
mask는 관리자를 제외한 사용자들에 대한 최대 권한이다.
mask권한 이상으로 권한을 획득할 수 없다는 것이다. 혹은 설정되있더라도 동작은 하지 않는다는 것이다.
이 권한은 r, w, x 의 권한이 각각으로 적용된다는 것이다.
but mask의 제약은 other사용자에게는 예외이다.