PATH variable

Nifty Hat Mitch mitch48 at sbcglobal.net
Wed Sep 8 17:58:08 UTC 2004


On Wed, Sep 08, 2004 at 08:02:27AM +0200, Joachim Backes wrote:

> can somebody tell me where the PATH variable is initially set? I'm
> sure, not in /etc/profile.

The strict answer to this is that it is set 
by init (/sbin/init).

   PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin

Since init is the first process from which all other processes are
created this is the answer to your question.   

Once init is running the topic  expands through /etc/inittab processing 
which includes all the scripts in /etc/init.d.

One of these steps is especially interesting for users at run level 5.

   # Run xdm in runlevel 5
   x:5:respawn:/etc/X11/prefdm -nodaemon

The first line with code in it resets the path thus:

   PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin

Now that a display manager is running it might be reset again.
For gdm we see this line in /usr/bin/gdm.

  test -f /etc/profile && . /etc/profile

/etc/profile does its pathmunge thing....
and then all these are /etc/profile.d/*.sh so if 
kerberos is there krb5.sh will modify it again.

All of this might be interesting because a process launched with a
quick click from the desktop by the window manager might act
differently when compared to the same process launched from a shell
prompt.

Not to be left out is your shell as defined in /etc/passwd
(bash, csh, tcsh, ksh, sh, zsh).  Each shell has rules for
startup and standard files it looks at... often PATH is reset
there.   The csh and tcsh world is funny because $path  is
almost equal to $PATH (RTFM).


-- 
	T o m  M i t c h e l l 
	Just say no to 74LS73 in 2004





More information about the fedora-list mailing list