Performance

有沒有辦法將 sudo 配置為不需要查找組名/或加快 sssd 組名解析?

  • February 26, 2018

我有大量 Linux 主機連接sssd到 Windows Active Directory (AD) 域以進行使用者/組查找。除了一個問題外,大多數情況下都可以正常工作; sudo.

從我在測試中能夠找到的任何時候執行sudo命令sudo嘗試解析使用者所在的所有組的所有名稱。因為sssd只有預設情況下記憶體 gid 並且必須緩慢查找名稱(假設最近沒有導致sssd在主機上記憶體組名)這可能會導致sudo命令在許多組中的帳戶暫停 45 秒,然後才會提示使用者輸入密碼以繼續執行該sudo命令。

根據我的測試,無論是否有任何sudo規則適用於使用其組的使用者,都會發生此組名解析。我已經測試了更改 group_source 值,sudo.conf但這似乎沒有太大影響。

從他們所在的大多數組中刪除我們的所有使用者並不是一個真正的選擇(我無法控制的基礎設施安全決策),所以我不得不試圖找到一種方法來停止sudo暫停很長時間,而所有組 id 都是抬頭看。

到目前為止,我想出的唯一解決方案是每 15 分鐘執行一次 cronjob 來做一些事情,比如getent groupsssd組名不斷地記憶體在記憶體中,但這似乎是一個 hacky 修復。所以我希望網上有人可能有更好的解決方案來加速sudo這種情況?

我建議將ignore_group_members選項設置為true,或將記憶體符號連結到 tmpfs 或等待 1.14 上游版本。

組解析速度慢的原因是,在記憶體過期後保存組進行記憶體更新總是會將完整的組對象寫入磁碟記憶體,即使沒有任何更改。在 1.14 中,我們將記憶體邏輯更改為僅在實際發生更改時才更新記憶體,請參閱14 項性能改進

設置ignore_group_members會使組顯示為空,從而減小它們的大小並加快記憶體保存時間。請注意,這不會對sudo功能產生任何影響,因為sudo用於initgroups()查看使用者屬於哪些組,而不是getent groupinitgroups。

前段時間我還寫了一篇關於性能調整的部落格文章,儘管它專注於 IPA 伺服器案例,但許多要點也適用於配置。sssd``sssd-ad

引用自:https://serverfault.com/questions/780670