与 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 中使用标准用户主目录并读取相应的点文件。
有效,但是 :
- 有些文件可能会在以 root 为所有者的标准用户目录中创建
- 有些命令不允许(或警告我)使用所有者不是当前用户的目录中的文件(这显然是出于安全原因)。因此,以 root 身份执行这些命令是有问题的。
更好的方法?
最简单的方法是将共享设置放入系统范围的配置文件中(/etc/zshrc、/etc/vimrc)。
但我想将所有设置保留在我的主目录中,在那里我可以使它们与 Git 远程存储库保持同步。这样,我可以轻松地将它们部署到新计算机上。
因为我目前的方法很乏味,而前者很愉快但有问题,
有没有更好的方法让 root 使用我当前的配置文件?
我通常做的是在 git 存储库中包含一个部署脚本。然后我使用 sudo 调用该脚本。然后该脚本使用 root 凭据运行并在 root 帐户中或全局更新点文件。
我让安装脚本尽可能简单,除了 shell 和核心实用程序(所以没有 rsync
)之外没有依赖项。
当前方法
实际上,我正在使用 符号链接:
与 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 中使用标准用户主目录并读取相应的点文件。
有效,但是 :
- 有些文件可能会在以 root 为所有者的标准用户目录中创建
- 有些命令不允许(或警告我)使用所有者不是当前用户的目录中的文件(这显然是出于安全原因)。因此,以 root 身份执行这些命令是有问题的。
更好的方法?
最简单的方法是将共享设置放入系统范围的配置文件中(/etc/zshrc、/etc/vimrc)。
但我想将所有设置保留在我的主目录中,在那里我可以使它们与 Git 远程存储库保持同步。这样,我可以轻松地将它们部署到新计算机上。
因为我目前的方法很乏味,而前者很愉快但有问题, 有没有更好的方法让 root 使用我当前的配置文件?
我通常做的是在 git 存储库中包含一个部署脚本。然后我使用 sudo 调用该脚本。然后该脚本使用 root 凭据运行并在 root 帐户中或全局更新点文件。
我让安装脚本尽可能简单,除了 shell 和核心实用程序(所以没有 rsync
)之外没有依赖项。