java Funktioniert als user, nicht als root

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ding280
Beiträge: 324
Registriert: 15.04.2005 18:31:18

java Funktioniert als user, nicht als root

Beitrag von ding280 » 06.01.2006 22:04:21

Hallo,

ich habe sun-j2se5.0 von debian-unofficial installiert und habe das Installationsverzeichnis in die /etc/profile aufgenommen. Ein java -version bringt bei einem "normalen" user eine richtige ausgabe, bei root jedoch "command not found". Die PATH-Zeilen in der /etc/profile:

Code: Alles auswählen

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/lib/sun-j2se5.0-jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
else
  PATH="/usr/lib/sun-j2se5.0-jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
fi
Hoffe, es weiß jemand Rat.

Gruß Tom

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 06.01.2006 22:34:59

vielleicht wird die PATH Environmentvariable für root nachher wieder überschrieben.
z.B. in /root/.profile, /root/.bash_profile, /root/.bashrc

was ergibt denn "echo $PATH" ausgeführt als root ?

Gruß
gms

ding280
Beiträge: 324
Registriert: 15.04.2005 18:31:18

Beitrag von ding280 » 06.01.2006 22:36:53

Mir ist aufgefallen, mit login-shell funktioniert es, mit su aber nicht. Keine Ahnung, woran das liegt.

Code: Alles auswählen

root@Laptop:~# java -version
bash: java: command not found
root@Laptop:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
root@Laptop:~# bash -l
root@Laptop:~# java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)
root@Laptop:~# echo $PATH
/usr/lib/sun-j2se5.0-jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 06.01.2006 23:44:13

kannst entwerder "su -" verwenden, oder du beachtest folgendes:
man su hat geschrieben: Unless the -m or -p options are used, the current environment is passed
to the new shell with alterations. The value of $PATH is reset to
/sbin:/bin:/usr/sbin:/usr/bin for the super user. This may be changed
with the ENV_PATH and ENV_SUPATH definitions in /etc/login.defs.
Gruß
gms

ding280
Beiträge: 324
Registriert: 15.04.2005 18:31:18

Beitrag von ding280 » 07.01.2006 21:13:34

Danke, da wär ich ja nie draufgekommen. Dann verwende ich jetzt wohl immer ein "su -", oder leg mir einfach ein alias an

Antworten