Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top


I added a directory to the $PATH variable in /etc/profile. This works for my user account but not for root. It's easy to add it to my /root/.bashrc but I would like to understand whats's wrong. It's a widely unmodified Debian 6 so I think my changes should do the trick.

Here is what my /etc/profile looks like:

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "`id -u`" -eq 0 ]; then
export PATH

if [ "$PS1" ]; then
  if [ "$BASH" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
      PS1='$ '

# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
  unset i

Edit: The path I added is the distcc-stuff. Here is what echo $PATH tells me:

$ echo $PATH
# echo $PATH
share|improve this question
How do you log in as root? Do you actually run a login shell? – Daniel Beck May 25 '11 at 13:39
I do su from a user shell in Gnome. – techshack May 25 '11 at 13:41
Oh I see, logging in on a terminal leads to correct set PATH. What's the difference? – techshack May 25 '11 at 13:42
Try su - to load roots profile. – cularis May 25 '11 at 13:50
That does the trick. – techshack May 25 '11 at 13:54
up vote 5 down vote accepted

You need to run a login shell (or run a non-interactive shell, but that's not what you want) to load /etc/profile.


su - username

or in case of root

su -

to do this.

- is the same as -l or --login and makes the shell a login shell.

share|improve this answer

A login shell is needed and can be created using sudo:

sudo bash --login <command>
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .