我正在运行 Debian。默认值/root/.bashrc
有点空。所以如果我sudo -i
以 root 身份登录,有很多东西没有正确设置。通常,我只需执行以下操作:
$ sudo -i
# mv .bashrc .bashrc.bak
# ln -s /home/user/.bashrc . # or cp /home/user/.bashrc .
注意:这/home/user/.bashrc
是debian创建的默认值,useradd
没有任何自定义修改。
所以现在,我只想澄清这样做是否安全。我只是懒得为 root 创建另一个 .bashrc 文件。
答案1
通过这样做,您可以有效地使 root 帐户与您自己的“用户”帐户一样安全。这意味着任何基于浏览器的木马或其他对您帐户的成功攻击也隐式地能够获得 root 访问权限。
这对你来说可以接受吗?
如果不是,请不要对文件进行符号链接;确认内容符合您的预期后,将其复制。
答案2
我认为这通常不是一个好主意,不仅在 Debian 中,至少有两个原因。
首先,您应该非常小心,除了复制用户的 .bashrc 之外,您还应该复制其来源的所有其他文件,这些文件可能称为 ~/.bash_aliases 等,否则您将面临一些错误和可能的未定义行为的风险。例如,如果出于某种原因,您的 .bashrc 或其来源的脚本之一中有此内容该怎么办:
. FILE2
echo "$var1"
echo rm -fr "$var1"/*
当 root 运行它的 ~/.bashrc 并且 FILE2 丢失时,它将开始删除整个文件系统。
其次,你不应该以 root 身份工作太久,因为这非常危险。并且您应该始终能够立即判断您是 root 用户还是当前交互式子 shell 中的普通用户。最常见的是通过改变最后的#
以 root 身份运行时的提示字符
所以至少PS1
root 和非 root .bashrc 之间的设置应该不同。
答案3
因此,您实际上只为 root 用户和普通用户使用一个 .bashrc。
您可能会问,这(对于 root 帐户)安全吗?
好吧,看看你的 ~/.bashrc 里面是否有可能损害 root 的代码,如果是的话,只需将此代码用 例如 括起来即可应用于普通用户if [ "$(id -u)" -ne 0 ]; then ...
。
然后以相反的方式执行相同的操作:如果原始 /root/.bashrc 中有某些内容必须为 root 设置而不是为普通用户设置,请复制此代码并将其用 括起来[ "$(id -u)" -eq 0 ]
。
这样您就可以拥有一个适合所有这些的 .bashrc。