Ubuntu

使用 FQDN 而不是短主機名的 Sudo ldap

  • August 17, 2011

在我的工作場所,我們正在使用 sudo-ldap 從集中式商店通過網路提供 sudo 權限。我們根據使用者名加上他們正在執行 sudo 的主機名來執行此操作,例如:

sudoHost: foo1
sudoUser: user1

我希望能夠根據 FQDN 而不是短主機名匹配 sudoHost 屬性,以便我們可以將 DNS 子域用於不同的環境 - 例如web1.dev.example.com在開發環境和web1.test.example.com測試環境中使用等等。但是,現在 sudoHost 僅匹配短主機名。

即這有效:

sudoHost: foo1

但這不起作用:

sudoHost: foo1.dev.example.com

僅具有短主機名 ( foo1) 的問題在於它匹配所有環境 - foo1.devfoo1.testfoo1.staging等。我希望它比這更細化。

是否有可能讓 sudo-ldap 基於 FQDN(由返回hostname -f)而不是短主機名進行查詢?

我用Google搜尋沒有成功。我在手冊頁或線上上找不到任何內容;談論sudoHost屬性時最接近的是:

須藤主機

主機名、IP 地址、IP 網路或主機網路組(以“+”為前綴)。特殊值 ALL 將匹配任何主機。

沒有提到 FQDN 與短主機名。在配置 ldap.conf 部分中也沒有提到 FQDN 與短主機名。

有問題的主機正在執行 Ubuntu 10.04。

鑑於 sudo 本身僅匹配sudoHost屬性提到的相同內容,我傾向於認為,如果沒有侵入性sudo修補,您將無法獲得所需的內容。

有一種可能性——您是將機器主機名設置為短名稱還是 FQDN?如果您正在執行前者,請嘗試後者並查看 sudo 是否切換為辨識 FQDN(不過,您可能會失去匹配短名稱的能力)。老實說,我喜歡將我的主機名設置為 FQDN,我認為它在像你描述的那樣的多域設置中提供了更多的價值(順便說一下,我為你的所作所為鼓掌,我希望每個人都會做)。

如果我冒險(有根據地)猜測為什麼您不能(老實說,不應該)基於 FQDN(或者,更具體地說,由 提供的數據hostname -f)而不是主機名進行匹配,我會說這是因為該值 ( hostname -f) 是通過 NSS 獲得的——含義/etc/hosts或 DNS (而 sudo 無法分辨是哪個)。所以你突然有一個安全漏洞,如果攻擊者可以操縱 DNS 結果,他就會得到你的主機限制 sudo 設置 pwned。

作為一個不太有用但仍有潛在價值的選項(如果無法將 FQDN 設置為主機名),請切換到使用 IP 地址。如果您必須重新編號,這不太明顯並且有點維護痛苦,但是除非您手動編輯 LDAP 記錄,否則您的 sudo-config-maintenance-tool-thingy 至少可以通過解析名稱/地址和給你玩的名字和 sudo IP 地址。

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