20

How can I change the $PATH variable in Debian? I tried to change /etc/profile but this affected only normal users (and yes, I added path to BOTH user's and root's paths).

After that I tried to edit /root/.profile and then /root/.bashrc also ...

Neither worked. Do you know where could be problem?

tshepang
  • 12,111
  • 21
  • 91
  • 136
grongor
  • 1,305
  • 1
  • 13
  • 26
  • Which shell is this for? Bash, csh other ? – arunkumar Aug 31 '11 at 13:49
  • Hmm I'm not sure :D I'm 'begginer' with UNIX ... I didn't change this from default instalation so what it could be ? ... edit: after doing "echo $SHELL" I got output "/bin/bash" :) – grongor Aug 31 '11 at 13:50
  • 1
    Just a guess, but did you start a new bash after the edit? Or alternatively did you source the modified file after it was edited (. /path/to/file or source /path/to/file). – Ahe Aug 31 '11 at 13:56
  • Yes I logged out and then also restarted the server. I didn't try source but I did now and it doesn't work also. Btw I said that it work's for normal users - it doesn't affect only root account. – grongor Aug 31 '11 at 14:01
  • I found out something interesting. When I do echo $PATH it outputs the default $PATH but when I do printenv PATH then I get the $PATH which I want ... – grongor Aug 31 '11 at 14:17

4 Answers4

25

This is set in the /etc/login.defs on debian 6.0 .

These are the lines you have to edit:

# *REQUIRED*  The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

EDIT:

I forgot to put where I found the solution: https://serverfault.com/questions/166383/how-set-path-for-all-users-in-debian

Community
  • 1
  • 1
turkishweb
  • 417
  • 5
  • 9
  • thank you for your response, I won't verify it but I think that this is what I was looking for :-) – grongor Jan 15 '13 at 16:10
3

Modify /etc/environment to include a line like this:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Flimm
  • 136,138
  • 45
  • 251
  • 267
2

If you are using a graphical display manager / GUI (a.k.a not just a shell or terminal) changing the /etc/profile, ~/.bashrc or other file will not change the PATH variable.

In this case you have to create the file: ~/.xsessionrc file and add something like this:

export  PATH="$PATH:/sbin"

(depending on the path you want to add)

For more info: https://wiki.debian.org/EnvironmentVariables

NOTE for Debian 10, check out this solution first if you get command not found:

su - root instead of su root

https://unix.stackexchange.com/questions/482569/debian-10-buster-update-grub-command-not-found

Ralph Bisschops
  • 1,888
  • 1
  • 22
  • 34
1

Simple way for me was to create file /etc/default/su with content

ALWAYS_SET_PATH yes

so I do not have to meddle with system files directly.

nobody
  • 111
  • 4