根的.bashrc无法在sudo -i上执行


11

在我的一台Ubuntu 11.10服务器上,当我用作sudo -iroot用户时,不会执行root的.bashrc。据我所知,在所有其他相关配置都相同的服务器上,该服务器正在正确执行。

这是我检查过的内容:

  • .bashrc存在于/ root中,由root:root拥有,权限644
  • 的/ etc /简档和/etc/bash.bashrc 正在被执行
  • root的shell设置为“ / bin / bash”
  • 我可以使用.bashrc执行source .bashrc,之后该会话的所有内容均正常。
  • bash在扎根后,我还可以键入手动执行bash,然后执行.bashrc
  • ps确认我的root登录的运行外壳程序是bash。

还有什么要检查的吗?

Answers:


10

您应该查看文件的存在和内容/root/.profile

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

此外,该文件/root/.profile不会/etc/skel/像其他用户那样从那里复制,而是从/usr/share/base-files/dot.profilepackage安装过程中从那里复制base-files


3

在我的情况下,您还应该记住另外一种情况。

如果您要创建.bash_profile文件,则该文件将负责加载/执行.bashrc.profile

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.