首頁 > 軟體

ACL存取控制列表

2020-06-16 17:09:54
  • acl是基於檔案系統的,所以支不支援acl在於使用什麼檔案系統。
    FAT32檔案系統不支援許可權,也不區分大小寫

  • 如果一個分割區不是安裝系統時分的分割區,是一個新的分割區的話,預設是不支援acl
  • CentOS7 之前版本,預設手工建立的ext4檔案系統無ACL功能,需手動增加

    tune2fs –o acl /dev/sdb1
    mount –o acl /dev/sdb1 /mnt/test
  • CentOS7 預設建立的xfs和ext4檔案系統具有ACL功能
    ***

    ACL生效的順序

  • 順序:所有者------->自定義使用者------->自定義組------->其他人

    [root@centos7 aubin]# getfacl file 
    # file: file
    # owner: root
    # group: root
    user::rw-                                    #所有者
    user:aubin:-w-                               #自定義使用者
    group::r--                                   #冒號中間為空,指的是所屬組
    group:aubin:---                              #自定義組
    mask::rw-
    other::r--
  • 許可權的最後一位變成 + 這裡設定了acl

    [root@centos7 app]# ls -al
    -rw-r--r--+  1 root root    8 Jul 25 09:54 file
  • ACL寫許可權
  • acl只給使用者寫許可權,不給讀許可權。那麼使用者無法檢視檔案內容。
    使用者可以追加,但是直接編輯會覆蓋

    [root@centos7 app]# setfacl -m u:aubin:w file 

    acl的設定與檢視

  • acl的設定與刪除

    #設定使用者的acl許可權
    [root@centos7 aubin]# setfacl -m u:aubin:rw fstab 
    #設定組的acl許可權
    [root@centos7 aubin]# setfacl -m g:root:rx fstab
    [root@centos7 aubin]# getfacl fstab 
    # file: fstab
    # owner: aubin
    # group: aubin
    user::---
    user:aubin:rw-
    group::rw-
    group:root:r-x
    mask::rwx
    other::---
    #
    #刪除指定的acl許可權
    [root@centos7 aubin]# setfacl -x g:root fstab 

    acl的遞迴

  • acl的複製與清除

    #複製檔案的acl許可權
    [root@centos7 aubin]# getfacl fstab | setfacl --set-file=- file 
    #清除acl的預設
    [root@centos7 aubin]# setfacl -k fstab 
    #刪除所有的acl許可權
    [root@centos7 aubin]# setfacl -b fstab

    acl的備份與恢復

    主要的檔案操作命令cp和mv都支援ACL,只是cp命令需要加上-p 引數。但是tar等常見的備份工具是不會保留目錄和檔案的ACL資訊

    #將acl資訊重定向到acl.bak
    [root@centos7 aubin]# getfacl -R fstab > ./acl.bak         
    [root@centos7 aubin]# cat acl.bak 
    # file: fstab
    # owner: aubin
    # group: aubin
    user::---
    user:aubin:rw-
    group::rw-
    mask::rw-
    other::---
    #清除檔案或資料夾的acl規則
    [root@centos7 aubin]# setfacl -R -b fstab 
    #恢復
    [root@centos7 aubin]# setfacl -R --set-file=acl.bak /app/aubin/fstab 

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-07/145950.htm


IT145.com E-mail:sddin#qq.com