Bash – Root’s .bashrc Not Executing on sudo -i

11.10bashbashrcsudo

On one of my Ubuntu 11.10 servers, when I use sudo -i to become the root user, root's .bashrc is not being executed. On all other servers, whose relevant configurations are identical as far as I know, it is being executed properly.

Here's what I've checked:

  • .bashrc exists in /root, owned by root:root, permissions 644
  • /etc/profile and /etc/bash.bashrc are being executed
  • root's shell is set to "/bin/bash"
  • I can execute .bashrc with source .bashrc, after which everything is normal for that session.
  • I can also type bash to execute bash manually after I've sudoed to root, and .bashrc is then executed
  • ps confirms that the running shell for my root login is bash.

Anything else to check?

Best Answer

You should look at the presence and content of the file /root/.profile.

The init file ~/.bashrc is not sourced in login shells: on Ubuntu it is sourced from ~/.profile

Furthermore, the file /root/.profile is not copied from /etc/skel/ as for other users, it is instead copied from /usr/share/base-files/dot.profile during installation of package base-files.

Related Question