如何限制各種設定檔的管理權限?

如何限制各種設定檔的管理權限?

我希望一名管理員能夠編輯 /etc/fstab 文件,但一名管理員無法編輯 fstab 檔案。

兩位管理員都需要存取所有其他管理任務。

這可能嗎?

我假設我需要以某種方式設定“sudo”允許他們存取哪些文件。或者可能只是建立非管理帳戶,然後建立一個名為 fstab-access 的群組,並將其中一個使用者新增至該群組並為該群組設定權限...?我走在正確的軌道上嗎?

答案1

如果你讓他們可以存取所有內容,那麼顯然所有的賭注都會失敗。但是,您可以允許使用者編輯特定文件而不編輯其他任何內容。例如:

user ALL = sudoedit /etc/fstab

將允許使用者僅編輯 /etc/fstab。

答案2

如果您只想允許使用者編輯/etc/fstab,您可以透過多種方式執行此操作:

  • 確保存取控制清單已啟用(條目acl中的選項)和。/etc/fstab/setfacl -m user:joe:rw /etc/fstab
  • 新增sudoers規則:運行visudo並新增一行joe ALL = sudoedit /etc/fstab

我推薦 sudo 方法,因為它可以輕鬆審查誰可以做什麼。

但是,如果您允許使用者編輯/etc/fstab,那麼他們可以透過新增一個條目來間接獲得 root 權限,該條目允許他們安裝已在其上植入 setuid root 二進位檔案的外部或循環檔案系統。

只允許用戶編輯是相當奇怪的fstab。如果您想允許使用者安裝可移動設備,請使用pmount(或依賴桌面環境)。

如果您允許使用者以 root 身分執行非白名單命令(「所有其他管理任務」),那麼您無法阻止他們編輯任何特定檔案。在某些時候,您需要決定是否信任這些人。如果您不信任他們管理您的計算機,請不要授予他們特權(讓他們使用另一台計算機,也許是虛擬機)。如果您確實信任他們,請讓他們成為 root,並告訴他們某些文件是禁止存取的。

答案3

如果您嘗試枚舉管理員可能需要使用的每一個實用程序,您將在鍵盤前坐上一段時間。

從技術上講,這種願望就是為什麼Linux 功能被開發出來。若要執行您想要的操作:您可以提供使用者特定的功能,然後只授予 user1 寫入權限fstab(透過 ACL 或其他方式),而不會向受限制的 user2 授予相同的寫入權限(確保 user2 沒有 CAP_CHOWN或CAP_DAC_OVERRIDE),但考慮到目前的功能狀態(就使用者空間的開發程度而言),這可能比其價值更多的工作。

如果不使用功能將職責轉移到「root 使用者角色」場景中,您就只能使用 root 帳號進行各種操作。這給我們帶來了前面提到的問題,即告訴系統其他使用者所需的每一種可能的工具(希望不能間接用於操縱fstab)。

您最好只決定是否可以信任特定使用者作為管理員。

相關內容