自動設置 Gnome 系統資料庫 (GConf) 強制設置
TL;DR:已經找到了一些可能性,但文件留下了太多未回答的問題,我無法自信地部署它們。
我想在我們網路上的使用者工作站上推出一些強制性的 GConf 設置。經過一番調查,似乎有幾個選項可以更改強制設置,但每個選項都給我留下了關於如何正確應用它的問題。
gconf-editor
方法:在 GUI 中,執行
gksudo gconf-editor
並選擇 File > New Mandatory Window。優點:
- 絕對有效:這是我過去在較小的安裝中使用的。
缺點:
- 不是自動化的,所以不是一個真正的選擇。
- 大量設置時擴展性很差。
gconftool-2
方法
gconftool-2
:使用 ’--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory
’ 選項呼叫。優點:
- 可以自動化。
缺點:
- 使用
--direct
標誌的方向顯然相互矛盾。- (次要)每個單獨的設置都需要單獨的命令。
/etc/gconf/gconf.xml.mandatory/
方法:直接修改/創建下文件
/etc/gconf/gconf.xml.mandatory/
。優點:
- 非常適合我們現有的文件分發基礎設施。
- 可以很好地擴展到大量設置。
缺點:
- 似乎不是官方支持的方法。
- 不清楚如何避免心煩意亂
gconfd
。- 停止/重新啟動的包裝腳本
gconfd
可能會導致使用者問題。GNOME 文件提供了一些使用
gconftool-2
該--direct
標誌的範例。但是,手冊頁顯示--direct
標誌“要求 gconfd 未執行”。這與這種情況無關(我將以 root 身份執行,而不是登錄使用者),還是我需要檢測 a 是否gconfd
正在執行並相應地傳遞/不傳遞該標誌?理想情況下,我希望
/etc/
直接同步文件,但我找不到任何跡象表明守護程序可能如何對此做出響應(例如,它們是否可能會選擇不一致的設置,或者是否需要重新啟動)。將文件更新夾在停止/重新啟動的命令之間gconfd
應該可以避免守護程序本身出現問題,但我想可能會對活動的使用者會話造成嚴重破壞。任何有更多 GConf 經驗的人都可以澄清這些問題,或提供他們正在使用的方法的詳細資訊嗎?我們正在執行 Ubuntu 12.04 LTS,但我很高興聽到在任何平台上執行的解決方案。
鑑於您的要求,我會添加設置
/etc/gconf/gconf.xml.mandatory
(我假設您正在使用 puppet、chef 或類似的東西)。您需要註銷使用者並停止 gconfd (gconftool-2 --shutdown
; 它通常在註銷後保持執行幾分鐘) 以使設置更改生效。