配置伦理(美学):/etc vs $HOME

rom*_*ovs 4 configuration etc directory-structure home

好吧,这可能不是一个非常具体的问题,并且可能会受到口味的影响,但我正在努力解决这个问题,所以就这样吧。

我有一台电脑。这台计算机上装有 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理念。

好处是:

  • 东西是本地的,这更像是在root和之间拆分权限的行romeovs

  • 快速轻松地访问文件。无需sudo编辑它们。

  • 更容易git跟踪配置文件。

  • 不知何故感觉更安全:用户可以在不使用机器全局设置的情况下搞砸东西。

  • 它更像是“a-package-update-may-overwite-my-config”-proof

让我们具体点:

在单用户机器上拆分配置的事实上的标准是什么,特别是对于系统维护者(单用户)?

Gil*_*il' 13

有一天,您要更换您的计算机,或者给其他人(例如家庭成员)一个您计算机上的帐户。

  • 如果您想在下一台计算机上保留设置,请将其放在您的主目录中。
  • 如果其他人可能想要不同的设置,请将其放在您的主目录中。
  • 如果设置依赖于计算机而不依赖于用户,请将其放入/etc.

您反对将配置文件放在主目录中的论点并不真正站得住脚:

  • sudo保持HOME环境变量(除非你告诉它不要)。因此,您的程序将继续从您的主目录读取它们的设置。
  • 守护进程不应该读取您的个人设置。守护进程通常通过 中的文件进行配置/etc,而不是通过环境变量或主目录中的文件进行配置。
  • $HOME应该有很多点文件。这就是为什么ls不显示它们。