Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.