iva*_*kov 4 command-line root users home-directory user-management
我有主用户,例如dave
主目录/home/dave
。并且它有很多可以运行的各种程序的配置vim
,bash
等等。当我以root
用户身份登录时,我的所有配置都没有使用,因为 root 有单独的主目录:/root
.
我不打算在我的机器上有任何其他用户。那么将root
用户主目录更改为dave
1 有什么缺点吗?
是的,很多。
$HOME
将更新的内容/home/dave
,很可能导致修改过的文件,结束了由根,而这又会使他们不可能为你修改而不被根(这可能会破坏某些程序(资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
。