Access-Control-List

目錄上的 setfacl 似乎不適用於子目錄的預設權限

  • December 1, 2020

以 root 身份創建目錄 /Logs/case1 並將 ACL 設置為具有預設組“mygroup”權限為“rwx”後,創建的任何子目錄都不會繼承這些權限

$ mkdir /Logs/case1    
$ setfacl -m g:mygroup:rwx /Logs/case1

以下是設置後的 ACL:

gc@logs:/Logs$ getfacl case1
# file: case1
# owner: root
# group: root
user::rwx
group::r-x
group:mygroup:rwx
mask::rwx
other::r-x

現在作為系統的普通使用者,我應該在 /Logs/case1 下創建一個子目錄

$ mkdir /Logs/case1/12345

gc@logs:/Logs/case1$ ls -lrt
total 4
drwxr-xr-x 2 gc mygroup 4096 Dec  1 00:16 12345

gc@logs:/Logs/case1$ getfacl 12345/
# file: 12345/
# owner: gc
# group: mygroup
user::rwx
group::r-x
other::r-x

為什麼這個目錄 “/Logs/case1/12345” 沒有繼承組 “mygroup” - “rwx” 的父目錄 ACL?

這是分配給使用者“root”和“gc”的組

$ groups root
root : root

$ groups gc
gc : mygroup

您為 /Logs/case1 設置了文件 ACL,但沒有設置預設 ACL。文件 ACL 不是繼承的,但預設 ACL 是。添加預設 ACL:

setfacl -m g:mygroup:rwx,d:g:mygroup:rwx /Logs/case1

setfacl

引用自:https://serverfault.com/questions/1044489