ACL訪問控制列表

  1. ACL :Access Control List,實現靈活的權限管理
  2. 除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限
  3. CentOS7 默認創建的xfs 和ext4文件系統具有ACL 功能
  4. CentOS7 之前版本,默認手工創建的ext4 文系統無ACL功能, 需手動增加
tune2fs –o acl /dev/sdb1(分區)
mount –o acl /dev/sdb1 /mnt/test
  1. 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特殊權限特點

  • ACL 文件上的group 權限是mask 值(自定義用戶,自定義組,擁有組的最大權限), 而非傳統的組權限
  • getfacl 可看到特殊權限:flags
  • 通過ACL 賦予目錄默認x 權限 ,目錄內文件也不會繼承x權限
  • base ACL 不能刪除
  • setfacl -k dir 刪除默認ACL 權限
  • setfacl –b file1 清除所有ACL 權限
  • getfacl file1 | setfacl --set-file=- file2 復制file1
    的的acl權限給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的之外的人和組的最大權限
  • Mask 需要與用戶的權限進行邏輯與運算后,才能變成有限的權限(Effective Permission)
    • 用戶或組的設置必須存在于mask 權限設定 范圍內才會 生效
    • setfacl -m mask::rx file
  • --set 選項會把原有的ACL 項都刪除,用新的替代,需要注意的是一定要包含UGO 的設置,不能象-m一樣只是添加ACL

備份和恢復ACL

在cp -p 的復制上時,就是帶有特殊權限的復制
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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容