PATH Variable

Locked
Message
Author
zwatz
Posts: 144
Joined: 19. Apr 2000 19:52
Location: OOE

PATH Variable

#1 Post by zwatz »

Hallo Leute,
könnte mir bitte jemand einen Tip geben, wo bei RedHat der "Ursprungs-PATH" gesetzt wird ?
Das sollte eigentlich in /etc/profile stehen, dort wird aber nur die bestehende PATH Variable erweitert:
PATH="$PATH:/usr/X11R6/bin:$INFORMIXDIR/bin:$HOME/bin"
Irgendwoher muss ja diese Variable zugewiesen werden, da sie ja für "normale" User und root unterschiedlich sind.
Ein /etc/PATH File gibt es auch nicht.

Thanx
Thomas

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: PATH Variable

#2 Post by hjb »

Hi,

vielleicht ist bin:/usr/bin schon in bash eingebaut. Oder der Pfad wird vom Parent-Prozeß geerbt, beispielsweise von 'login' oder einer anderen Shell.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

cptchaos
Posts: 129
Joined: 06. Jun 2000 21:42

Re: PATH Variable

#3 Post by cptchaos »

Moin moin,

kann es sein das die entsprechende Variable abhängig von der User ID erzeugt wird !
Halte mal nach dem Beispiel unten ausschau, da wird es nämlich so gemacht. Ich bin auch der Meinung das die Variable in /etc/profile zum Erstenmal gesetzt wird, mit bash oder einer anderen Shell hat das daher warscheinlich nichts zu tun.
Oft werden auch noch Teile der /etc/profile in andere Dateien ausgelagert z.B. /etc/profile.local oder /home/user/.profile, schaue auch hier mal nach.




Ach ja bevor ich es vergesse, der Code ist aus SuSE.


#
# make path more comfortable
#
MACHINE=`test -x /bin/uname && /bin/uname --machine`
PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin
for DIR in ~/bin/$MACHINE ~/bin ; do
test -d $DIR && PATH=$DIR:$PATH
done
#test "$UID" = 0 && PATH=/sbin:/usr/sbin:$PATH
test "$UID" = 0 && PATH=/sbin:/usr/sbin:/usr/local/sbin/$PATH
for DIR in /usr/lib/java/bin \
/var/lib/dosemu \
/usr/games/bin \
/usr/games \
/opt/bin \
/opt/gnome/bin \
/opt/kde/bin \
/usr/openwin/bin ; do
test -d $DIR && PATH=$PATH:$DIR
done
test "$UID" = 0 || PATH="$PATH:."
export PATH


MfG
Marek Walther

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: PATH Variable

#4 Post by hjb »

Hi,

das ist ziemlich hirntot, was SuSE da macht. Die zusätzlichen Pfade von root könnte man genausogut in /root/.bashrc einstellen.

Das 'login'-Programm scheint auch unterschiedliche Pfade für root und Normalos zu setzen. Darüber könnte man genauso argumentieren.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

zwatz
Posts: 144
Joined: 19. Apr 2000 19:52
Location: OOE

Re: PATH Variable

#5 Post by zwatz »

hi,
danke fuer die Antworten, das ganze scheint so abzulaufen:

Bei einer Xsession wird der Pfad beim Einloggen vom Windowmanager gesetzt und wird gegebenenfalls durch perönliche Einstellungen erweitert (auch /etc/profile wird gelesen, wenn man das so will).
Bei einem telnet/login wird ein Standardpfad (für Root unterschiedlich) gesetzt und ebenso gegebenenfalls erweitert.

Einzig verbliebenes Rätsel für mich ist nun woher /usr/local/bin im Pfad von Root herkommt, das möchte ich eigentlich so nicht haben; und zwar ist das nur so wenn ich unter X als normaler User mit "su -" Root werde, logge ich als Root an der Konsole ein, ist /usr/local/bin nicht im Pfad.
Wird da der Pfad wie oben erwähnt, vielleicht weitervererbt ?

Gruss
Thomas
Last edited by zwatz on 12. Jun 2000 15:15, edited 1 time in total.

Jochen

Re: PATH Variable

#6 Post by Jochen »

Ein paar Kleinigkeiten kann ich noch nachtragen: Es ist tatsächlich "login", dass die ersten Environment-Variablen setzt, nämlich HOME, PATH, SHELL, TERM, MAIL, und LOGNAME. PATH defaultet für Normaluser auf /usr/local/bin:/bin:/usr/bin:., für root auf /sbin:/bin:/usr/sbin:/usr/bin (Quelle: man login). Wenn Andi mittels "su -" zu root wechselt, werden alle Environment-Variablen gelöscht ausser TERM, HOME, USER und LOGNAME. Diese werden ggf. auf die neuen Werte gesetzt. Weiterhin macht "su" folgendes <blockquote><hr> ... and set `PATH' to a compiled-in default value.<hr></blockquote>(Quelle: info su) Daher dürfte dann Dein /usr/local/bin kommen, Andi. Aber gerade für root würde ich sowieso einen festen PATH in der /root/.bash_profile setzen. Sicher ist sicher...

Locked