設定 ACL 進行群組讀訪問

設定 ACL 進行群組讀訪問

讓我向您介紹我的兩個 LDAP 使用者 margaret 和 pepijn。

Pepijn 位於我不存在的公司食物鏈的底部,因此僅是一個 LDAP 群組的成員:

pepijn@srv:/$ groups
user

瑪格麗特是比較幸運的人之一:

margaret@srv:/$ groups
user SVNAccess www-writers book-writers

我已經為 /files/books 設定了預設的 ACL,以便書籍作者的成員具有 rwx 存取權限,而使用者的成員僅具有 r 存取權限。

# file: files/books/
# owner: root
# group: book-writers
user::rwx
group::r--
group:user:r--
group:book-writers:rwx
mask::rwx
other::---
default:user::rwx
default:group::r--
default:group:user:r--
default:group:book-writers:rwx
default:mask::rwx
default:other::---

Margaret 將一些資料寫入檔案 /files/books/test.txt。然後,Pepijn 嘗試查看該文件的內容,但當他看到「拒絕存取」錯誤時,他感到非常失望。

當我在文件上運行 getfacl 時,它會傳回以下內容:

# file: files/books/test.txt
# owner: margaret
# group: user
user::rw-
group::r--
group:user:r--
group:book-writers:rwx          #effective:rw-
mask::rw-
other::---

為什麼 Pepijn 無法查看 Margaret 的文件內容?

答案1

您的files/books/目錄不授予 +x (遍歷)到group:user.

對於目錄,+r 可讓您列出內容(檔案名稱),但需要 +x 才能實際下降到目錄(因此所有父目錄都需要它/)。

答案2

需要在acl中新增使用者群組的執行權限,才能遍歷資料夾並讀取檔案。

setfacl -m g:user:r-x /files/books

相關內容