Root 的 .bashrc 未在 sudo -i 上执行

Root 的 .bashrc 未在 sudo -i 上执行

在我的其中一台 Ubuntu 11.10 服务器上,当我sudo -i以 root 用户身份使用时,root 的 .bashrc 未被执行。在所有其他服务器上,据我所知,其相关配置相同,它正在正确执行。

以下是我检查过的内容:

  • .bashrc 存在于 /root 中,所有者为 root:root,权限为 644
  • /etc/profile 和 /etc/bash.bashrc正在被处决
  • root 的 shell 设置为“/bin/bash”
  • 我可以使用 执行 .bashrc source .bashrc,之后该会话一切正常。
  • 我也可以输入bashsudo 到 root 后手动执行 bash,然后执行 .bashrc
  • ps 确认我的 root 登录所运行的 shell 是 bash。

还有什么需要检查吗?

答案1

您应该查看该文件的存在情况及其内容/root/.profile

init 文件~/.bashrc不是来自登录 shell:在 Ubuntu 上,它来自~/.profile

此外,该文件/root/.profile不是/etc/skel/为其他用户复制的,而是/usr/share/base-files/dot.profile在安装包期间复制的base-files

答案2

还有一种情况你应该记住,这种情况就发生在我身上。

如果您要创建.bash_profile文件,那么该文件将接管加载/执行.bashrc或的责任.profile

当您打开终端并使用时"sudo -i",突然发现缺少一些命令别名、文件列表颜色等,请仔细检查此文件是否存在于您的主目录中,然后重命名它并再次重新打开控制台。这应该可以解决问题。

相关内容