Linux 구체 적 권한 계획 의 ACL (Access Control List)

1904 단어 LinuxShell
ACL 메커니즘 은 두 가지 명령 과 관련된다. setfacl, getfacl
ACL 소스
owner, group, othre 가 조합 한 세 가지 권한 rwx 에서 단일 사용자 나 그룹 을 대상 으로 할 수 없습니다.
ACL 은 단일 사용자, 단일 파일 또는 디 렉 터 리 에 대해 rwx 권한 설정 을 할 수 있 습 니 다.
mount 명령 으로 루트 디 렉 터 리 에 마 운 트 된 파 티 션 을 확인 하고 dumpe2fs 명령 으로 이 파 티 션 의 슈퍼 블록 내용 을 확인 하여 acl 을 지원 하 는 지 여 부 를 확인 합 니 다. 일반적으로 지원 합 니 다.
jammgit@jammg:~$ sudo dumpe2fs -h /dev/sda12 | grep acl
dumpe2fs 1.42.12 (29-Aug-2014)
Default mount options:    user_xattr acl

/etc/fstab 파일 을 직접 수정 하고 acl 을 추가 할 수도 있 습 니 다.
만약 시스템 에 acl 지원 을 추가 하지 않 았 다 면, 가능 합 니 다:
#mount -o remount,acl /

명령 용법
setfacl [-bkRd] [{-m|-x} acl参数] 目标文件名
-m 设置后续的acl参数给指定目标文件
-x  删除,和m选项相反
-b  删除所有acl参数
-k  删除默认的acl参数
-R  递归设置(针对子目录)
-d  设置默认acl参数,只对目录有效

setfacl, getfacl 형식:
setfacl u:[用户列表]:[rwx] 目标   //针对用户。用户列表为空时是指文件持有者
setfacl g:[用户组列表]:[rwx] 目标   // 针对用户组
setfacl -m m:[rwx] 目标 // 设置文件mask
getfacl 目标

예시
jammgit@jammg:/tmp$ setfacl -m u:jammgit_1:rwx testacl
jammgit@jammg:/tmp$ ls -la | grep testacl
-rw-rwxr--+  1 jammgit jammgit    0  3月 30 18:40 testacl
jammgit@jammg:/tmp$ getfacl testacl
# file: testacl
# owner: jammgit
# group: jammgit
user::rw-             // 用户权限
user:jammgit_1:rwx      // acl机制针对jammgit_1设置的权限,优先级比ls查看到的大。
group::rw-       // 用户组权限
mask::rwx       // 屏蔽
other::r--    //其它权限

위 에 사용자 나 사용자 그룹의 권한 을 설정 하려 면 비 마스크 권한 범위 가 있어 야 유효 권한 (effective permission) 이 적 용 됩 니 다.
예 를 들 어 마스크 를 r 로 설정 하면
jammgit@jammg:/tmp$ setfacl -m m:r testacl
jammgit@jammg:/tmp$ getfacl testacl
# file: testacl
# owner: jammgit
# group: jammgit
user::rw-
user:jammgit_1:rwx        #effective:r--
group::rw-            #effective:r--
mask::r--
other::r--

이때, jammgit 를 설 치 했 지만1 은 rwx 이지 만 실제로는 r 만 있다.또 사용자 그룹 도 영향 을 받 았 다.

좋은 웹페이지 즐겨찾기