我受到啟發,再次開始嘗試 Linux 功能,我的最愛項目是替換許多二進位檔案上的 setuid,並向非 root 用戶提供對其他特權實用程式的存取。透過添加相關功能(+ei
,問題沒有實際意義+ep
)setcap
並配置我的個人使用者帳戶(jdavis4
)以在登入時將這些功能分配給其會話來做到這一點pam_cap.so
,並且進展順利。我可以透過capability.conf授予個人使用者存取「ping」和「kill」的權限
不過,我遇到的問題是,如果這是一個生產系統,管理員可能希望透過某種聚合單元分配功能,這樣他們就不必為每個單獨的用戶執行此操作每次他們製作一個。這樣,使用者只需添加到“filesystemAdmin”群組並獲取類似的內容CAP_DAC_OVERRIDE
或添加到“ProcessManagement”並獲取類似CAP_SYS_NICE
和的內容CAP_SYS_KILL
。
目前這可能嗎?
答案1
我們加入了對s支援@group
的語法。在撰寫本文時,pam_cap.so
capability.conf
libcap-2.29
libcap
版本為 2.49。
還有一些文檔pam_cap.so
這裡。
答案2
你想做的事情是不可能的。不僅pam_cap
操縱可繼承的能力(因此它實際上根本不授予任何允許/有效的能力),它還只處理使用者而不是群組(甚至不是主要群組)。
答案3
我找不到任何文件來說明 Capability.conf 可以直接指派給群組。
這似乎是 pam_cap 需要從身份驗證過程中「剝奪」特權的產物,身份驗證過程可能具有「全部」功能,或足以成為這樣。這就產生了一種傾向,即累積累積加映射似乎是不明智的,因為它可能很快就會變成「無法檢查的結構」。因此,透過capability.conf 進行的分配不是累積的。如果你擊中了一根火柴,那就是你得到的。不多也不少。
照這樣說:
可以設定 pam_cap 從 /etc/security/capability.conf 格式的任意檔案載入功能
可以在 pam 配置中使用腳本。根據驗證使用者的群組成員身分為使用者產生每個使用者的capability.conf 檔案並將其提供給 pam_cap 模組是相當簡單的。
它不是“優雅”或“理想”,但對於大型LDAP 類型的用戶群來說,它可能比有效用戶之間的“通過第8 層jellyware 同步”和單個/etc 中每個用戶的全文條目更易於檢查/security/capability.conf。