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?
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 packagebase-files
.There is one additional situation which you should keep in mind, which happened in my case.
If you would create
.bash_profile
file then this file is taking over the responsibility to load / execute.bashrc
or.profile
.When you open your terminal and use
"sudo -i"
and you are suddenly missing some command aliases, file list coloring etc., then double check if this file is present in your home directory, then rename it and reopen your console again. This should fix it.