next up previous contents
Next: 檔案的特殊屬性 Up: Linux 檔案權限與管理 Previous: 改變檔案權限   Contents

Access Control Lists

  1. 什麼是 ACL (Access Control List)?
    1. 提供傳統的 owner,group,others 的 read,write,execute 權限之外的細部權限設定。
    2. ACL 可以針對單一使用者,單一檔案或目錄來進行 r, w, x 的權限規範。
    3. ACL 主要可以針對以下項目來控制權限:
      1. 使用者 (user):可以針對使用者來設定權限;
      2. 群組 (group):針對群組為對象來設定其權限;
      3. 預設屬性 (mask):針對在該目錄下在建立新檔案/目錄時,規範新資料的預設權限。
  2. setfacl:設定 ACL 的狀態。
    [root@demo ~]# setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...
    選項:
    -m :設定後續的 acl 參數給檔案使用,不可與 -x 合用;
    -x :刪除後續的 acl 參數,不可與 -m 合用;
    -b :移除所有的 ACL 設定參數;
    -k :移除預設的 ACL 參數;
    -R :遞迴設定 acl,即包括次目錄都會被設定;
    -d :設定『預設 acl 參數』,只對目錄有效,在該目錄新建的資料會引用此預設值
    acl_spec:
    [d[efault]:] [u[ser]:]uid [:perms]
    [d[efault]:] g[roup]:gid [:perms]
    [d[efault]:] m[ask][:] [:perms]
    [d[efault]:] o[ther][:] [:perms]
    # d 選項,表示該目錄預設有設定的 acl 規範,類似 umask 的功能。
    
  3. 先複製測試檔案
    [root@kvm7 ~]# cp /etc/fstab /var/tmp/
    
  4. 查看複製的檔案擁有者,群組皆為 root,目前權限為 644,root 有讀取及寫入的權限。
    [root@kvm7 ~]# ll /var/tmp/fstab
    -rw-r--r--. 1 root root 694 Oct 15 06:29 /var/tmp/fstab
    
  5. 使用 getfacl 查看 /var/tmp/fstab 目前的 ACL,沒有其他用戶有特殊的權限。
    [root@kvm7 ~]# getfacl /var/tmp/fstab
    getfacl: Removing leading '/' from absolute path names
    # file: var/tmp/fstab
    # owner: root
    # group: root
    user::rw-
    group::r--
    other::r--
    
  6. 改變 /var/tmp/fstab 的 ACL,用戶 deyu1 有讀取及寫入的權限。
    [root@kvm7 ~]# setfacl -m u:deyu1:rw /var/tmp/fstab
    
  7. 改變 /var/tmp/fstab 的 ACL,用戶 deyu2 沒有任何權限。
    [root@kvm7 ~]# setfacl -m u:deyu2:- /var/tmp/fstab
    
  8. 再使用 getfacl 查看 /var/tmp/fstab 目前的 ACL,其他用戶 deyu1 及 deyu2 有特殊的權限。
    [root@kvm7 ~]# getfacl /var/tmp/fstab
    getfacl: Removing leading '/' from absolute path names
    # file: var/tmp/fstab
    # owner: root
    # group: root
    user::rw-
    user:deyu1:rw-
    user:deyu2:---
    group::r--
    mask::rw-
    other::r--
    
  9. 列出 /var/tmp/fstab 可以看到權限部分多了個 +,且權限不是原本的“644”?
    [root@kvm7 ~]# ll /var/tmp/fstab
    -rw-rw-r--+ 1 root root 694 Oct 15 06:29 /var/tmp/fstab
    



2018-04-11