Configuration

配置倫理(美學):/etc vs $HOME

  • June 4, 2012

好的,這可能不是一個非常具體的問題,並且可能受制於口味,但我正在努力做到這一點,所以就這樣吧。

我有一台電腦。這台電腦上有 linux(感謝上帝)。具體來說是 Arch Linux(使用awesomewm)。我是這台電腦上的單個使用者。

至於好的做法,我設置了兩個使用者:root使用者和日常romeovs使用者。這樣我只在需要時使用權限(sudo例如使用)。

多年來,我一直在推銷我的軟體套件,在這台電腦上添加了一堆應用程序。值得注意的是:vim, git, mpc, mutt, calcurse, ufw, …

現在問題來了:我使用哪些應用程序的配置文件?所有這些都提供了一個/etc基於 -based 的全域配置文件,它影響所有使用者,以及一個本地 ~/.config(或者,可悲的是~/)配置選項。

我一直使用本地配置設置,因為這感覺更自然。但隨著我對我的電腦越來越熟悉,我覺得這在某種程度上缺乏優雅。這種方法的反面是:

  • 切換到root使用者時的差異,即使使用sudo(例如使用時vim
  • 並不總是有效,例如,當從 arch linuxDEAMONS 陣列載入守護程序時,它們由root使用者執行,因此不會獲取本地使用者配置。
  • 主要$HOME目錄混亂。可悲的是,很少有應用程序遵循這一$XDG_CONFIG_HOME理念。

好處是:

  • rootstuff 是本地的,感覺更像是在和之間劃分權限romeovs
  • 快速輕鬆地訪問文件。無需sudo編輯它們。
  • 更容易git跟踪配置文件。
  • 不知何故感覺更安全:使用者可以在不影響機器全域設置的情況下搞砸事情。
  • 它更像是“a-package-update-may-overwite-my-config”-proof

讓我們具體一點:

在單使用者機器上拆分配置的事實標準是什麼,特別是對於系統維護人員(單使用者)?

有一天,您要更換您的電腦,或為其他人(例如家庭成員)提供您電腦上的帳戶。

  • 如果您想在下一台電腦上保留設置,請將其放在您的主目錄中。
  • 如果其他人可能想要不同的設置,請將其放在您的主目錄中。
  • 如果設置依賴於電腦而不依賴於使用者,請將其放入/etc.

您反對將配置文件放在主目錄中的論點並沒有真正成立:

  • sudo保留HOME環境變數(除非您告訴它不要這樣做)。因此,您的程序將繼續從您的主目錄中讀取它們的設置。
  • 守護程序不應該讀取您的個人設置。守護程序通常通過 中的文件配置/etc,而不是通過環境變數或通過您的主目錄中的文件。
  • $HOME應該有很多點文件。這就是為什麼ls不顯示它們。

引用自:https://unix.stackexchange.com/questions/40028