CentOS之ACL權限設定探討
ACL全名為Access Control List,除了傳統上的owner , group , others檔案與目錄權限設定。ACL主要針對更詳細的權限設定如:單一使用者、單一檔案、目錄來進行權限規範。
在傳統上權限判別是依照USER>GROUP>OTHER依序判別,然而加入的ACL後是依照USER>ACL.USER>GROUP>ACL.GROUP>OTHER進行依序判別如下圖:
在傳統上權限判別是依照USER>GROUP>OTHER依序判別,然而加入的ACL後是依照USER>ACL.USER>GROUP>ACL.GROUP>OTHER進行依序判別如下圖:
圖、ACL權限由上而下依序判別 |
- ACL設定主要為兩個指令:
- getfacl:取得該檔案、目錄的設定項目。
- 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/
留言
張貼留言