Verschiedene Umgebungsvariabeln?

antona

antona

Mitglied
Etwas was ich nicht so ganz verstehe.
Wenn ich mich in der Shell als 'root' einlogge habe ich wesentlich mehr Pfadangaben in meiner PATH-Variabeln, als wenn ich mich als User in einem Konsolenfenster mit 'su' zu root mache.
Ein
Code:
echo $PATH
ergibt hier wesentlich weniger eingetragene Pfade.
Woran liegt das?
Kann man das angleichen?

Danke für Info
/A
 
Etwas was ich nicht so ganz verstehe.
Wenn ich mich in der Shell als 'root' einlogge habe ich wesentlich mehr Pfadangaben in meiner PATH-Variabeln, als wenn ich mich als User in einem Konsolenfenster mit 'su' zu root mache.
Ein
Code:
echo $PATH
ergibt hier wesentlich weniger eingetragene Pfade.
Woran liegt das?
Kann man das angleichen?

Danke für Info
/A

Vergleiche mal .profile von "Dir" und root.
 
Ich nutze Suse 9.3.
Im Root-Verzeichnis gibt es da keine .profile.
Im home/user liegt nur eine .profile Beispieldatei in der alle Einträge auskommentiert sind.
Anscheinend wird hier nur /etc/profile genutzt (?)

Hm, das gehört wahrscheinlich besser in Suse-Forum oder? :think:
/a
 
Hallo
Es kommt darauf an, welche shell du benutzt.
Unter root / wirst du wohl kaum .profile finden.
Üblicherweise werden /etc/profile die globalen Optionen gesetzt.
Für die Bash gilt dann:
Danach wird im ~/ nach .bash_profile gesucht und gegebenenfalls userspezifische Umgebungen gesetzt bzw. überladen.Danach wird nach einer ~/.bashrc gesucht und wiederum letzte spezifische Umgebungen gesetzt bzw. überschrieben.

Wenn du dich mit su - aka -l zu root machst, sieht die Umgebung anders aus als per su , da dort die Umgebung der Loginshell genutzt wird.

Mit su wird die Umgebung aus /root/profile und /root/.bashrc genommen.

Es gibt alledings für su auch die Option --preserve-environment, was die aktuelle Umgebung beibehält.
man su

Gruß Wolfgang
 
Und warum sollte der User Pfade in seinem $PATH haben, deren Befehle er sowieso nicht ausführen darf ;)
 
Und warum sollte der User Pfade in seinem $PATH haben, deren Befehle er sowieso nicht ausführen darf ;)

Schon klar. Es geht eher drum, das 'root' mit 'su' zuwenig Pfade hat um benötigte Programme auszuführen.


@ Wolfgang:
Alles klar, 'su -l' funktioniert und ergibt auch die benötigten Pfade.
Wozu diese Funktion, d.h spezifische Umgebungen allerdings generell gut sein soll, ist mir nicht klar.

Danke
 
Schon klar. Es geht eher drum, das 'root' mit 'su' zuwenig Pfade hat um benötigte Programme auszuführen.


@ Wolfgang:
Alles klar, 'su -l' funktioniert und ergibt auch die benötigten Pfade.
Wozu diese Funktion, d.h spezifische Umgebungen allerdings generell gut sein soll, ist mir nicht klar.

Danke

Die Pfade für root sollten möglichst minimal sein. Das ist eine Frage der Sicherheit.

Der Sinn der Erhaltung einer bestimmten Userumgebung ergibt sich, wenn du mal ein wenig mehr dazu in betracht ziehst als nur $PATH.

Eine Umgebung kann (und hat es oft für echte Admins auch) etliche Funktionen und Aliasse (Mehrzahl von Alias?) enthalten.
Um das nun mal schnell auf root oder einen anderen user anzuwenden, ist es schon sinnvoll diese Option zur Verfügung zu haben.

Außerden ist ja su nicht nur für den Wechsel zu root gedacht.

Gruß Wolfgang
 
Danke für die gute Erklärung
/A

Wow, um 6.22 gepostet.
Insomia?
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

PHPmyAdmin login funktioniert nicht

ganze Netzwerkumgebung schagartig unsichtbar - 0S 13.1

verzeichniss suche funktioniert nicht

Zurück
Oben