Scripting

如何讓使用者在他們不擁有的目錄上設置 ACL?

  • May 13, 2017

我在 Linux 機器上有一組儲存目錄,都是 770/root:root (perms/owner:group),我使用 ACL 來管理使用者訪問。(我無法使用 unix 組,因為目錄是通過網路共享的,其中組是通過我不是管理員的 LDAP 管理的)。

對於每個目錄,一個使用者通過 ACL 擁有完全的 rwx 訪問權限,而所有其他使用者通過 ACL 擁有 rx 訪問權限。

目前,我必須手動響應添加/刪除使用者的請求,我希望將這種能力傳遞給他們擁有的目錄的“rwx”使用者(因為我自然是一個懶惰的系統管理員)。

我能想到的最佳解決方案是使用 root setuid 創建一個腳本/程序,檢查給定目錄上呼叫使用者的“rwx”ACL 狀態,並允許他們添加/刪除“rx”ACL 使用者,如:

$ modify_acls.sh [--remove] [--add] <my_directory> <other_user>

有沒有更簡單的方法,或者上述解決方案是否因任何原因不起作用?

考慮啟用特定腳本,而不是 setuid shell 腳本sudo

儘管它最常以這種方式使用,但sudo並不局限於“允許某人以 root 身份執行任何程序”。您可以在/etc/sudoers. 詳情請參閱man sudoers

使用代替 setuid 腳本並沒有真正的優勢sudo,除了在出於安全原因完全禁用 setuid 腳本的系統上,第二種選擇根本不起作用。sudoers您仍然可以編寫自定義 setuid 二進製文件,但是在以後想要添加或刪除使用者時,插入一行更簡單、更快捷、更容易更改。

引用自:https://unix.stackexchange.com/questions/362898