Hallo Zusammen, trotz googeln bleibe ich ohne Erfolg: Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein? Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen. Aber /etc/profile wirkt sich auf alle User aus, ich möchte explizit Root den Pfad erweitern. Bei meinem user-account finde ich eine Pfadangabe für java und kann diese nirgends finden... Welche Dateien sind für Root, welche für den User bezüglich der PATH-Variable zuständig? Und übrigends, wo stellt man den sinnvollerweise eigene Scripts hin, die nur Root ausführen sollte (/usr/local/sbin oder /usr/local/bin)? Mit der Bitte um Hilfe. Uli
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday 19 August 2004 00:26, Ulrich Gerner wrote:
Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen.
Hier: SuSE 9.0 Prof. Auszug aus /etc/profile: test "$UID" = 0 && PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH Also /usr/local/sbin scheint wohl schon in $PATH zu sein? Bei dir nicht? Vielleicht habe ich auch selber /usr/local/sbin mit reingepackt, kann mich nicht mehr erinnern ;-)
Aber /etc/profile wirkt sich auf alle User aus, ich möchte explizit Root den Pfad erweitern.
Alternativ /root/.profile anlegen mit Eintrag "export PATH=/usr/local/ sbin:$PATH"
Und übrigends, wo stellt man den sinnvollerweise eigene Scripts hin, die nur Root ausführen sollte (/usr/local/sbin oder /usr/local/bin)?
Entweder dorthin, mit entsprechenden Rechten, oder alternativ ein Verzeichnis /root/bin anlegen, das kommt automatisch in $PATH rein, gilt auch für nicht-root, einfach jeweils ~/bin anlegen hth Malte -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.3.6 (GNU/Linux) Comment: PGP-Key: http://www.maltegell.privat.t-online.de/pgp/key.txt iD8DBQFBI+HjGzg12gD8wBYRAgFsAJ9qA0/ndm8pXT23POi7dPOMHrMiiQCfUL0W y0atTJsr1d9JmvnRGIymTbw= =tIsa -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday 19 August 2004 00:26, Ulrich Gerner wrote:
Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein?
Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen.
Hast du das Problem mit fehlendem Pfad nur, wenn du "su" benutzt? Kann auch der Grund sein, daher "su -l" benutzen. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.3.6 (GNU/Linux) Comment: PGP-Key: http://www.maltegell.privat.t-online.de/pgp/key.txt iD8DBQFBI+L+Gzg12gD8wBYRAi2wAJ4pwxKVF6W1UPh+446JijExOJQKMQCfTvnT ytUzY08dmmJY++vZZuqOAsw= =LfZ8 -----END PGP SIGNATURE-----
Am Donnerstag, 19. August 2004 01:15 schrieb Malte Gell:
On Thursday 19 August 2004 00:26, Ulrich Gerner wrote:
Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein?
Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen.
Hast du das Problem mit fehlendem Pfad nur, wenn du "su" benutzt? Kann auch der Grund sein, daher "su -l" benutzen.
Ja, öfnne ich mit su -l eine Loginshell erhalte ich die PATH-Variable aus der profile. Aber wo ist die Pfadvariable für eine normale Shell gesetzt? Woher hat PATH den Pfad zu Java? Weder in /etc/profile, noch /etc/bashrc ist was zu finden. Es muss also noch einen andere Ort dafür geben. Gruss Uli
On Thursday 19 August 2004 10:41, Ulrich Gerner wrote:
Woher hat PATH den Pfad zu Java? Weder in /etc/profile, noch /etc/bashrc ist was zu finden. Es muss also noch einen andere Ort dafür geben.
/etc/profile.d/alljava.sh Dort wird der Java Pfad gesetzt. /etc/profile.d/* wird von /etc/profile aufgerufen und gesetzt. Die Sachen in /etc/profile.d/ sind aber nur für best. Programme. Für eigene PATH-Einträge sollte man /etc/profile.local ~/.profile nehmen. Gruß Malte
Am Donnerstag, 19. August 2004 18:19 schrieb Malte Gell:
On Thursday 19 August 2004 10:41, Ulrich Gerner wrote:
Woher hat PATH den Pfad zu Java? Weder in /etc/profile, noch /etc/bashrc ist was zu finden. Es muss also noch einen andere Ort dafür geben.
/etc/profile.d/alljava.sh
Dort wird der Java Pfad gesetzt. /etc/profile.d/* wird von /etc/profile aufgerufen und gesetzt. Die Sachen in /etc/profile.d/ sind aber nur für best. Programme. Für eigene PATH-Einträge sollte man /etc/profile.local ~/.profile nehmen.
Danke Malte, da hätte ich mich sicher totgesucht... Gruss Uli
Am Donnerstag, 19. August 2004 00:26 schrieb Ulrich Gerner:
Hallo Zusammen,
trotz googeln bleibe ich ohne Erfolg:
Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein?
Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen. Aber /etc/profile wirkt sich auf alle User aus, ich möchte explizit Root den Pfad erweitern.
Naja, da bietet sich doch ~/.profile an, so wie es für jeden anderen User auch gilt. Oder aber auch ~/.bash_profile, ~/.bashrc - aber ich denke ~/.profile ist besser da diese auch AFAIK von anderen shells gelesen wird. :) Ich kopier mir immer die /etc/profile nach ~/.profile und mach dann dort meine Anpassungen. Die /etc/profile ist für Systemweite Einstellungen gedacht. --- schnipp --- When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behav- ior. When a login shell exits, bash reads and executes commands from the file ~/.bash_logout, if it exists. When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force bash to read and execute commands from file instead of ~/.bashrc. --- schnipp --- Für weiterführende Informationen hilft Dir: 'man bash' ;-)
Bei meinem user-account finde ich eine Pfadangabe für java und kann diese nirgends finden...
Auch in diesem Fall - schau mal nach in ~/.profile bzw. ~/.bashrc
Welche Dateien sind für Root, welche für den User bezüglich der PATH-Variable zuständig?
s.o.
Und übrigends, wo stellt man den sinnvollerweise eigene Scripts hin, die nur Root ausführen sollte (/usr/local/sbin oder /usr/local/bin)?
Nein! /root/bin und dieses Verzeichnis trage ich dann auch für root in den Pfad ein. HTH, Andreas.
Hallo, Am Thu, 19 Aug 2004, Ulrich Gerner schrieb:
Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein?
/etc/profile.local
Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen.
Die ist schon per Default fuer root gesetzt! ==== /etc/profile [suse91] ==== test "$UID" = 0 && PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH ====
Aber /etc/profile wirkt sich auf alle User aus, ich möchte explizit Root den Pfad erweitern.
Lege dir eine /root/.bashrc an. Ausserdem s.o.
Bei meinem user-account finde ich eine Pfadangabe für java und kann diese nirgends finden...
Wo hast du gesucht?
Welche Dateien sind für Root, welche für den User bezüglich der PATH-Variable zuständig?
s.o.
Und übrigends, wo stellt man den sinnvollerweise eigene Scripts hin, die nur Root ausführen sollte (/usr/local/sbin oder /usr/local/bin)?
/root/bin ggfs. musst du das Verzeichnis noch anlegen, im Pfad ist es per Default wenn es existiert: ==== /etc/profile [suse91] ==== if test "$HOME" != "/" ; then for dir in $HOME/bin/$CPU $HOME/bin ; do test -d $dir && PATH=$dir:$PATH done fi ==== Steht das eigentlich nicht mehr im Handbuch, das du zusammen mit den DVDs bekommen hast? -dnh -- "There is hopeful symbolism in the fact that flags do not wave in a vacuum." -- Arthur C. Clarke
On Thursday 19 August 2004 02:10, David Haller wrote:
Hallo,
Am Thu, 19 Aug 2004, Ulrich Gerner schrieb:
Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein?
/etc/profile.local
Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen.
Die ist schon per Default fuer root gesetzt!
==== /etc/profile [suse91] ==== test "$UID" = 0 && PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH ====
Aber /etc/profile wirkt sich auf alle User aus, ich möchte explizit Root den Pfad erweitern.
Lege dir eine /root/.bashrc an. Ausserdem s.o.
Das ging doch mal früher mit der ".profile" ! seit wann hat sich das denn geändert ? Kenne selbst auch die bashrc ... aber in der .profile stehen jetz ja nurnoch die spracheinstellung......
Bei meinem user-account finde ich eine Pfadangabe für java und kann diese nirgends finden...
Wo hast du gesucht?
Welche Dateien sind für Root, welche für den User bezüglich der PATH-Variable zuständig?
s.o.
Und übrigends, wo stellt man den sinnvollerweise eigene Scripts hin, die nur Root ausführen sollte (/usr/local/sbin oder /usr/local/bin)?
/root/bin
ggfs. musst du das Verzeichnis noch anlegen, im Pfad ist es per Default wenn es existiert:
==== /etc/profile [suse91] ==== if test "$HOME" != "/" ; then for dir in $HOME/bin/$CPU $HOME/bin ; do test -d $dir && PATH=$dir:$PATH done fi ====
Steht das eigentlich nicht mehr im Handbuch, das du zusammen mit den DVDs bekommen hast?
-dnh
-- "There is hopeful symbolism in the fact that flags do not wave in a vacuum." -- Arthur C. Clarke
Am Donnerstag, 19. August 2004 04:24 schrieb Martin Kremers:
On Thursday 19 August 2004 02:10, David Haller wrote:
Hallo,
Am Thu, 19 Aug 2004, Ulrich Gerner schrieb:
Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein?
/etc/profile.local
Ich möchte Root (und nur Root) die Pfadangabe /usr/local/sbin dazufügen.
Die ist schon per Default fuer root gesetzt!
Aber /etc/profile wirkt sich auf alle User aus, ich möchte explizit Root den Pfad erweitern.
Lege dir eine /root/.bashrc an. Ausserdem s.o.
Das ging doch mal früher mit der ".profile" ! seit wann hat sich das denn geändert ? Kenne selbst auch die bashrc ... aber in der .profile stehen jetz ja nurnoch die spracheinstellung......
Bei meinem user-account finde ich eine Pfadangabe für java und kann diese nirgends finden...
Wo hast du gesucht?
Eben dort, wo man die PATH-Variablen vermutet: /etc/profile /profile.local /.bashrc Aber ich vermute, dass es noch eine andere Stelle gibt, die es zu finden gilt Gruss Uli
Am Donnerstag, 19. August 2004 10:47 schrieb Ulrich Gerner:
Am Donnerstag, 19. August 2004 04:24 schrieb Martin Kremers:
On Thursday 19 August 2004 02:10, David Haller wrote:
Hallo,
Am Thu, 19 Aug 2004, Ulrich Gerner schrieb:
Wo stelle ich in einer Suse 9.1 die PATH-Variablen ein?
/etc/profile.local [...] Wo hast du gesucht?
Eben dort, wo man die PATH-Variablen vermutet: /etc/profile /profile.local /.bashrc
Aber ich vermute, dass es noch eine andere Stelle gibt, die es zu finden gilt
man bash ;-) lg, Andreas
Am Donnerstag, 19. August 2004 11:48 schrieb Andreas Scherer:
Am Donnerstag, 19. August 2004 10:47 schrieb Ulrich Gerner:
Eben dort, wo man die PATH-Variablen vermutet: /etc/profile /profile.local /.bashrc
Aber ich vermute, dass es noch eine andere Stelle gibt, die es zu finden gilt
man bash ;-)
Ok, habe ich fast ganz gelesen und das hilft ein wenig weiter, aber... Frage ich anders herum: Wo oder wie wird die Pfadangabe für Java ( /usr/lib/java/jre/bin:.) gesetzt (unter User-Account)? In o.a. Dateien ist nichts zu finden. Ich habe Bedenken, dass da noch andere Programme sich einfach willkürlich in die PATH einschleichen und das kann nicht gut sein. Zumal ich unter ./java/irgendwas/ auch schon mal einen Trojaner finden kann, doch das nur nebenbei. Gruss Uli
Am Donnerstag, 19. August 2004 13:07 schrieb Ulrich Gerner:
Am Donnerstag, 19. August 2004 11:48 schrieb Andreas Scherer:
Am Donnerstag, 19. August 2004 10:47 schrieb Ulrich Gerner:
Eben dort, wo man die PATH-Variablen vermutet: /etc/profile /profile.local /.bashrc
Aber ich vermute, dass es noch eine andere Stelle gibt, die es zu finden gilt
man bash ;-)
Ok, habe ich fast ganz gelesen und das hilft ein wenig weiter, aber...
Frage ich anders herum: Wo oder wie wird die Pfadangabe für Java ( /usr/lib/java/jre/bin:.) gesetzt (unter User-Account)?
Mein $PATH für 'root' sieht so aus: /sbin:/usr/sbin:/usr/local/sbin: wird gesetzt durch [1] /root/bin: wird gesetzt durch [2] /usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin: wird gesetzt durch [3] /usr/games:/opt/gnome/bin:/opt/kde3/bin: wird gesetzt durch [4] /usr/lib/java/bin wird gesetzt durch [5] # Make path more comfortable # [3] if test -z "$PROFILEREAD" ; then PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin [2] for dir in $HOME/bin/$CPU $HOME/bin ; do test -d $dir && PATH=$dir:$PATH done [1] test "$UID" = 0 && PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH [4] for dir in /var/lib/dosemu \ /usr/games \ /opt/bin \ /opt/gnome/bin \ /opt/kde3/bin \ /opt/kde2/bin \ /opt/kde/bin \ /usr/openwin/bin \ /opt/cross/bin do test -d $dir && PATH=$PATH:$dir done unset dir export PATH fi [5] server:~ # for i in /etc/*/*; do grep -H /usr/lib/java/bin $i; done /etc/profile.d/alljava.csh:if ( -x /usr/lib/java/bin/java || -x /usr/lib/java/bin/jre ) then /etc/profile.d/alljava.csh: setenv PATH ${PATH}:/usr/lib/java/bin /etc/profile.d/alljava.csh: setenv JAVA_BINDIR /usr/lib/java/bin /etc/profile.d/alljava.csh: if ( -x /usr/lib/java/bin/javac ) then /etc/profile.d/alljava.csh: if ( -x /usr/lib/java/bin/jre ) then /etc/profile.d/alljava.sh:if [ -x /usr/lib/java/bin/java ] || [ -x /usr/lib/java/bin/jre ] ; then /etc/profile.d/alljava.sh: export PATH=$PATH:/usr/lib/java/bin /etc/profile.d/alljava.sh: export JAVA_BINDIR=/usr/lib/java/bin /etc/profile.d/alljava.sh: if [ -x /usr/lib/java/bin/javac ] ; then /etc/profile.d/alljava.sh: if [ -x /usr/lib/java/bin/jre ] ; then server:~ # Alles klar? ;-)
In o.a. Dateien ist nichts zu finden. Ich habe Bedenken, dass da noch andere Programme sich einfach willkürlich in die PATH einschleichen und das kann nicht gut sein.
ACK!
Zumal ich unter ./java/irgendwas/ auch schon mal einen Trojaner finden kann, doch das nur nebenbei.
UFF! Linux wird, auf Grund seiner nunmehr zahlreicheren Verbreitung ja nun doch auch für die Hacker immer interessanter. (böse Buben!) HTH, Andreas.
Am Donnerstag, 19. August 2004 14:22 schrieb Andreas Scherer:
Am Donnerstag, 19. August 2004 13:07 schrieb Ulrich Gerner:
Am Donnerstag, 19. August 2004 11:48 schrieb Andreas Scherer:
Am Donnerstag, 19. August 2004 10:47 schrieb Ulrich Gerner:
Eben dort, wo man die PATH-Variablen vermutet: /etc/profile /profile.local /.bashrc
Aber ich vermute, dass es noch eine andere Stelle gibt, die es zu finden gilt
man bash ;-)
Ok, habe ich fast ganz gelesen und das hilft ein wenig weiter, aber...
Frage ich anders herum: Wo oder wie wird die Pfadangabe für Java ( /usr/lib/java/jre/bin:.) gesetzt (unter User-Account)?
Mein $PATH für 'root' sieht so aus:
/sbin:/usr/sbin:/usr/local/sbin: wird gesetzt durch [1]
/root/bin: wird gesetzt durch [2]
/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin: wird gesetzt durch [3]
/usr/games:/opt/gnome/bin:/opt/kde3/bin: wird gesetzt durch [4]
/usr/lib/java/bin wird gesetzt durch [5]
# Make path more comfortable # [3] if test -z "$PROFILEREAD" ; then PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin
[2] for dir in $HOME/bin/$CPU $HOME/bin ; do test -d $dir && PATH=$dir:$PATH done
[1] test "$UID" = 0 && PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH
[4] for dir in /var/lib/dosemu \ /usr/games \ /opt/bin \ /opt/gnome/bin \ /opt/kde3/bin \ /opt/kde2/bin \ /opt/kde/bin \ /usr/openwin/bin \ /opt/cross/bin do test -d $dir && PATH=$PATH:$dir done unset dir export PATH fi
[5] server:~ # for i in /etc/*/*; do grep -H /usr/lib/java/bin $i; done /etc/profile.d/alljava.csh:if ( -x /usr/lib/java/bin/java || -x /usr/lib/java/bin/jre ) then /etc/profile.d/alljava.csh: setenv PATH ${PATH}:/usr/lib/java/bin /etc/profile.d/alljava.csh: setenv JAVA_BINDIR /usr/lib/java/bin /etc/profile.d/alljava.csh: if ( -x /usr/lib/java/bin/javac ) then /etc/profile.d/alljava.csh: if ( -x /usr/lib/java/bin/jre ) then /etc/profile.d/alljava.sh:if [ -x /usr/lib/java/bin/java ] || [ -x /usr/lib/java/bin/jre ] ; then /etc/profile.d/alljava.sh: export PATH=$PATH:/usr/lib/java/bin /etc/profile.d/alljava.sh: export JAVA_BINDIR=/usr/lib/java/bin /etc/profile.d/alljava.sh: if [ -x /usr/lib/java/bin/javac ] ; then /etc/profile.d/alljava.sh: if [ -x /usr/lib/java/bin/jre ] ; then server:~ #
Alles klar? ;-)
Sagen wir, wesentlich klarer als zuvor! Werde mich morgen mal im Detail da durcharbeiten, jedenfalls herzlichen Dank für die wirklich sachliche und ausführliche Antwort. So macht es Spass sich in Linux einzuarbeiten. Gruss Uli
participants (5)
-
Andreas Scherer
-
David Haller
-
Malte Gell
-
Martin Kremers
-
Ulrich Gerner