与 root 用户共享点文件

Sharing dotfiles with the root user

当前方法

实际上,我正在使用 符号链接:

与 root 用户共享我的一些点文件
ln -s ~user/.vimrc  /root/
ln -s ~user/.zshenv /root/
ln -s ~user/.zlogin /root/
ln -s ~user/.zshrc  /root/

以前的方法

之前,我使用 sudo 命令和 -E 来保护环境。因此,root 用户在交互式 shell 中使用标准用户主目录并读取相应的点文件。

有效,但是 :

  1. 有些文件可能会在以 root 为所有者的标准用户目录中创建
  2. 有些命令不允许(或警告我)使用所有者不是当前用户的目录中的文件(这显然是出于安全原因)。因此,以 root 身份执行这些命令是有问题的。

更好的方法?

最简单的方法是将共享设置放入系统范围的配置文件中(/etc/zshrc、/etc/vimrc)。

但我想将所有设置保留在我的主目录中,在那里我可以使它们与 Git 远程存储库保持同步。这样,我可以轻松地将它们部署到新计算机上。

因为我目前的方法很乏味,而前者很愉快但有问题, 有没有更好的方法让 root 使用我当前的配置文件?

我通常做的是在 git 存储库中包含一个部署脚本。然后我使用 sudo 调用该脚本。然后该脚本使用 root 凭据运行并在 root 帐户中或全局更新点文件。

我让安装脚本尽可能简单,除了 shell 和核心实用程序(所以没有 rsync)之外没有依赖项。