5.2. SuSE 10.0: Warum werden nach einem 'su' Programme in /sbin und /usr/sbin nicht gefunden?
5.2.1
Der Unterschied zwischen su und su - ist
folgender:
Ohne das Minus wirst Du root in dem Verzeichnis, in welchem Du beim
Aufruf von su gewesen bist. Allerdings fehlt Dir Deine komplette
"root"-Umgebung, wie Du diese aus /etc/profile{.local} hättest.
Insbesondere wird die Umgebungsvariable $PATH (der Suchpfad für
Programme) nicht geändert. Du bist einfach nur "root", behältst aber
sämtliche Umgebungsvariablen des Users bei.
Mit su - wirst Du komplett als "root" eingeloggt (Du
bekommst eine Loginshell, siehe dazu man su) und
befindest Dich anschliessend auch im Heimatverzeichnis von "root".
Außerdem wird $PATH um /sbin und /usr/sbin ergänzt - die
in diesen Verzeichnisse enthaltenen Programme, die üblicherweise nur von
root gebraucht werden, werden also gefunden.
Um auch beim Aufruf von su ohne minus $PATH wie in
älteren SUSE-Versionen zu setzen, kannst Du in /etc/default/su
die Option ALWAYS_SET_PATH=yes setzen.
Die Angaben für PATH und SUPATH in
/etc/default/su gelten übrigens für su ohne minus und
nur in Verbindung mit ALWAYS_SET_PATH=yes.
— Martin Mewes (cboltz)
|