- ACL :Access Control List舰始,實現(xiàn)靈活的權(quán)限管理
- 除了文件的所有者懈凹,所屬組和其它人签财,可以對更多的用戶設置權(quán)限
- CentOS7 默認創(chuàng)建的xfs 和ext4文件系統(tǒng)具有ACL 功能
- CentOS7 之前版本匹颤,默認手工創(chuàng)建的ext4 文系統(tǒng)無ACL功能, 需手動增加
tune2fs –o acl /dev/sdb1(分區(qū))
mount –o acl /dev/sdb1 /mnt/test
- ACL 生效順序:所有者啥繁,自定義用戶夺谁,自定義組廉赔,其他人
范例:
mount -o acl /directory
getfacl file |directory
setfacl -m u:wang:rwxfile|directory
setfacl -Rm g:sales:rwX directory
setfacl -M file.acl file|directory
setfacl -m g:salesgroup:rw file|directory
setfacl -m d:u:wang:rx directory
setfacl -x u:wang file |director
setfacl -X file.acl directory
ACL特殊權(quán)限特點
- ACL 文件上的group 權(quán)限是mask 值(自定義用戶,自定義組匾鸥,擁有組的最大權(quán)限), 而非傳統(tǒng)的組權(quán)限
- getfacl 可看到特殊權(quán)限:flags
- 通過ACL 賦予目錄默認x 權(quán)限 蜡塌,目錄內(nèi)文件也不會繼承x權(quán)限
- base ACL 不能刪除
- setfacl -k dir 刪除默認ACL 權(quán)限
- setfacl –b file1 清除所有ACL 權(quán)限
- getfacl file1 | setfacl --set-file=- file2 復制file1
的的acl權(quán)限給file2
[root@VinnyWang app]# getfacl a
# file: a
# owner: root
# group: root
user::rw-
user:wang:rwx
group::r--
mask::rwx
other::r--
[root@VinnyWang app]# touch b
[root@VinnyWang app]# getfacl a |setfacl --set-file=- b
[root@VinnyWang app]# getfacl b
# file: b
# owner: root
# group: root
user::rw-
user:wang:rwx
group::r--
mask::rwx
other::r--
- mask 只影響除所有者和other的之外的人和組的最大權(quán)限
- Mask 需要與用戶的權(quán)限進行邏輯與運算后,才能變成有限的權(quán)限(Effective Permission)
- 用戶或組的設置必須存在于mask 權(quán)限設定 范圍內(nèi)才會 生效
- setfacl -m mask::rx file
- --set 選項會把原有的ACL 項都刪除勿负,用新的替代馏艾,需要注意的是一定要包含UGO 的設置劳曹,不能象-m一樣只是添加ACL
備份和恢復ACL
在cp -p 的復制上時,就是帶有特殊權(quán)限的復制
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1