CentOS之ACL權限設定探討

ACL全名為Access Control List,除了傳統上的owner , group , others檔案與目錄權限設定。ACL主要針對更詳細的權限設定如:單一使用者、單一檔案、目錄來進行權限規範。

在傳統上權限判別是依照USER>GROUP>OTHER依序判別,然而加入的ACL後是依照USER>ACL.USER>GROUP>ACL.GROUP>OTHER進行依序判別如下圖:
圖、ACL權限由上而下依序判別


  • ACL設定主要為兩個指令:
    1. getfacl:取得該檔案、目錄的設定項目。
    2. setfacl:設定該檔案、目錄的規範。
      • 設定參數:
        • -m:新增該檔案、目錄的設定值。
        • -x:刪除該檔案、目錄的設定值。
        • -b:移除該檔案、目錄所有的設定值。
        • -R:遞迴設定或移除該目錄底下所有的設定值。
1.情境題

群組名稱:manager
群組成員:mary、jerry

檔案名稱:file1  
檔案擁有者與群組:root:root
權限:640

manager 成員加入ACL可以讀寫,但特別針對jerry無任何權限。

答案:
  • groupadd manager
  • useradd -G manager mary
  • useradd -G manager jerry
  • echo "1111" > passwd --stdin mary
  • echo "1111" > passwd --stdin jerry
  • touch file1
  • chmod 640 file1
  • setfacl -m g:manager:rw file1
  • setfacl -m u:jerry:--- file1

2.情境題
群組名稱:manager
群組成員:mary、jerry

目錄名稱:dhappy 
檔案擁有者與群組:root:root
權限:755

manager成員加入ACL可以讀寫,但jerry只能唯讀。

答案:
  • groupadd manager
  • useradd -G manager mary
  • useradd -G manager jerry
  • echo "1111" > passwd --stdin mary
  • echo "1111" > passwd --stdin jerry
  • mkdir dhappy
  • chmod 755 dhappy
  • setfacl -m g:manager:rwx play/
  • setfacl -m u:jerry:r-x play/

3.情境進階題***
群組名稱:manager
群組成員:mary、jerry

群組名稱:happywork
群組成員:kenny、linda

目錄名稱:documentwork
檔案擁有者與群組:root:root
權限:770


  • 在/srv底下建立一個目錄名為documentwork
  • 目錄之群組身份為happy群組成員如下:
  • 因業務需求happy群組成員可以進入讀寫
  • manager群組也可以進入讀寫
  • 但jerry用戶有可能是商業間諜來搞破壞的,所以只允許jerry用戶進入此目錄唯獨
  • 在此目錄下所產生的檔案都須符合
    • happy群組可讀寫
    • manager群組可讀寫
    • jerry唯讀
    • 新檔案之群組身份會自動設為happy

答案:
  • groupadd happy
  • useradd -G happy kenny
  • useradd -G happy linda
  • echo 1234 | passwd --stdin kenny
  • echo 1234 | passwd --stdin linda

  • mkdir documentwork
  • chgrp happy documentwork/
  • chmod 2770 documentwork/
  • setfacl -m g:manager:rwx documentwork/
  • setfacl -m d:g:manager:rwx  documentwork/
  • setfacl -m u:jerry:r-x documentwork/
  • setfacl -m d:u:jerry:r-x documentwork/







留言

這個網誌中的熱門文章

如何使用Windows Server 2012 R2 DNS伺服器中的設定與網域名稱與IP綁定對應

使用Windows Server 2012 R2 來建立 Active Directory(AD) 來管理使用者帳戶以一台Win7為例

如何讓Windows Server 2012 R2 架設IIS網頁伺服器並且支援PHP伺服器