Acl
為什麼我對修改了 ACL 的文件沒有讀取權限?
/var/www/mysite/
我的目標是只允許www-data 組中的使用者使用預設ACL讀取文件夾。這適用於正常 ACL,但不適用於預設 ACL。為什麼?
我是這樣做的:
我以www-data組中的使用者www-data**身份登錄。我在目錄中*
/var/www
*。我創建了一個目錄mysite並賦予它 0 權限。然後我添加了 ACL 權限,以便組www-data中的任何人都可以讀取目錄mysite/。
$ mkdir mysite $ chmod 0 mysite $ setfacl -m g:www-data:r-x mysite $ ls -la d---------+ 2 root root 4096 Sep 6 11:16 mysite $ getfacl mysite/ # file: mysite/ # owner: root # group: root user::--- group::--- group:www-data:r-x mask::r-x other::---
此時使用者www-data可以訪問該文件夾。但是,如果我改為添加預設 ACL,訪問將被拒絕!
$ setfacl -m d:g:www-data:r-x mysite # <---- NOTE the default acl rule. $ ls -la d---------+ 2 root root 4096 Sep 6 11:16 mysite $ getfacl mysite/ # file: mysite/ # owner: root # group: root user::--- group::--- other::--- default:user::--- default:group::--- default:group:www-data:r-x default:mask::r-x default:other::---
預設 ACL 是應用於該目錄中新創建的文件的 ACL。它也被複製為在該目錄下創建的子目錄的預設 ACL,因此除非您執行某些操作來覆蓋它,否則它會遞歸應用。
預設 ACL 對目錄本身或更改預設 ACL 時存在的任何文件沒有影響。
因此,在您的情況下,您需要在目錄上設置 ACL(對於目錄本身)並設置預設 ACL(對於您將在目錄中創建的文件)。