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
PATH Variable
Re: PATH Variable
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
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?
Re: PATH Variable
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
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
Re: PATH Variable
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
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?
Re: PATH Variable
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
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.
Re: PATH Variable
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...