好吧,这可能不是一个非常具体的问题,并且可能会受到品味的影响,但我正在努力解决这个问题,所以就这样吧。
我有一台电脑。这台电脑上有linux(感谢上帝)。具体来说是 Arch Linux(使用awesome
wm)。我是这台计算机上的单一用户。
至于良好实践,我设置了两个用户:普通root
用户和日常使用romeovs
用户。这样我只在需要时使用权限(sudo
例如使用)。
多年来,我一直在改进我的软件套件,在这台计算机上添加了一堆应用程序。尤其:vim
,git
,mpc
,mutt
,calcurse
,ufw
, ...
现在的问题是:我应该使用这些应用程序的哪些配置文件?所有这些都提供/etc
基于 - 的全球的配置文件,影响全部用户,以及当地的 ~/.config
(或者,遗憾的是,~/
)配置选项。
我一直使用本地配置设置,因为这感觉更自然。但随着我对电脑越来越熟悉,我觉得这有点缺乏优雅。这种方法的反对是:
切换到
root
用户时的差异,即使使用sudo
(例如,使用时vim
)并不总是有效,例如,当从 arch linux
DEAMONS
阵列加载守护进程时,它们由用户运行root
,因此不会获取本地用户配置。主要
$HOME
目录混乱。遗憾的是,很少有应用程序遵循$XDG_CONFIG_HOME
哲学。
好处是:
root
stuff 是本地的,这更多地体现在和之间的权限划分romeovs
。快速轻松地访问文件。无需
sudo
编辑它们。更容易
git
跟踪配置文件。不知何故感觉更安全:用户可以搞砸事情,而不会弄乱机器的全局设置。
它更能证明“a-package-update-may-overwite-my-config”
让我们具体说一下:
在单用户计算机上分割配置的事实上的标准是什么,特别是对于系统维护人员(单用户)?
答案1
有一天,您要更换计算机,或者向其他人(例如家庭成员)提供您计算机上的帐户。
- 如果您想在下一台计算机上保留设置,请将其放在您的主目录中。
- 如果其他人可能想要不同的设置,请将其放在您的主目录中。
- 如果设置依赖于计算机而不依赖于用户,则将其放入 中
/etc
。
您反对将配置文件放在主目录中的论点实际上站不住脚:
sudo
保留HOME
环境变量(除非您告诉它不要这样做)。因此,您的程序将继续从您的主目录读取其设置。- 守护进程不应该读取您的个人设置。守护进程通常通过 中的文件进行配置
/etc
,而不是通过环境变量或主目录中的文件进行配置。 $HOME
应该有很多点文件。这就是为什么ls
不显示它们。