我有主用户,例如dave
主目录/home/dave
。它有很多可以运行的各种程序的配置vim
,bash
等等。当我以root
用户身份登录时,我的所有配置都没有使用,因为 root 有单独的主目录:/root
.
我不打算在我的机器上安装任何其他用户。那么将root
用户主目录更改为dave
一个有什么缺点吗?
我有主用户,例如dave
主目录/home/dave
。它有很多可以运行的各种程序的配置vim
,bash
等等。当我以root
用户身份登录时,我的所有配置都没有使用,因为 root 有单独的主目录:/root
.
我不打算在我的机器上安装任何其他用户。那么将root
用户主目录更改为dave
一个有什么缺点吗?
是的,很多。
$HOME
的内容都会更新 的内容/home/dave
,可能导致修改后的文件最终归 root 所有,这反过来又会使您无法在没有 root 身份的情况下修改它们(这可能会破坏某些程序(vim
并且大多数 shell 都是主要示例,命令历史最终只能由 root 使用)。/home/dave
理论上,任何具有写入权限的人都可以以 root 身份轻松运行命令。请记住,许多 CLI 工具在您启动它们时都会在$HOME
其中运行启动文件,而不仅仅是解析。.bashrc
并且.vimrc
是微不足道的示例,这两个示例都允许任何可以写入它们的人以执行用户的权限bash
或vim
以使用它们的方式运行任意命令。/root
出于安全原因,任何其他用户都不应读取其中的某些内容。最好的例子是 SSH 或 GPG 密钥之类的东西,但还有其他的。与另一个主目录合并/root
使得确保这些秘密保密变得更加困难。请注意,这就是为什么/root
存在的原因,旧的 UNIX 系统只是用作/
root 的主目录,这会将大量信息泄露给其他用户。/home/dave
任何使dave
用户无法登录的错误配置也会使 root 用户无法登录。这会使任何配置更改的风险更大。请注意,第二点和第三点是潜在的严重安全问题,即使在单用户系统上也是如此。永远记住,任何设法让你的用户能够运行代码的攻击都可以做你的用户可以做的任何事情。
/etc
如果您的目标是简单地在整个系统中共享配置,则可以通过使用配置文件而不是主目录中的配置文件来避免上述最后一个问题。这些是系统范围的默认配置,因此修改它们会修改系统上每个人的配置。几乎所有具有某种形式的配置的交互式 CLI 工具本身都不是特定于用户的,它们的配置文件位于/etc
.我会安全行事并添加按命令重定向。
您可以通过 2 种方式执行此操作:
vim
:sudo ln -s /home/dave/.viminfo /root/.viminfo
HOME=/home/dave
到每个命令。您可以在文件中创建别名,.bashrc
这样您就不必考虑它:如果您的目标是将文件编辑为
root
,只需使用sudoedit
(我相信它等同于sudo -e
)。该命令将在一个临时文件上打开您的编辑器,该文件将在成功退出时替换原始文件。(Vim 的
:cquit
命令可用于使退出“失败”。)至于外壳,我建议保留它的准系统。它会提醒您不想以 root 身份登录很长时间。如果必须,请使用
/etc
目录或其他专门配置 root 的方法。但不要链接文件。