Skip to content

sudo ist böse!

Die Aussage im Titel stimmt so natürlich nicht! Weil ich aber immer wieder sehe, dass in Blog-Einträgen sudo in der Form

$ sudo gedit

benutzt wird, will ich hier noch einmal darauf hinweisen, was auch schon an anderen Stellen steht.

Führt man nur sudo aus, öffnet man ein Programm als Root mit Root-Rechten. Als Homeverzeichnis wird aber immer noch das normale Benutzerverzeichnis /home/BENUTZER/ benutzt und nicht /root/, wie man annehmen könnte.

Sollte das Programm auf die Idee kommen, etwas in $HOME zu speichern (ggf. ohne das eigene Wissen), wird mit Root-Rechten im eigenen Home-Verzeichnis geschrieben. Das kann dazu führen, dass beim nächsten Start mit normalen Rechten man eben nicht mehr auf diese Dateien zugreifen kann (Lesen würde gehen, Schreiben eher nicht).

Aus dem Grund sollte man, wenn möglich

$ sudo -H gedit

oder das für grafische Anwendungen gedachte gksudo bzw. kdesudo nutzen.

Update: Als Ergänzung: Die grafischen Pendants zu sudo setzen das Benutzerverzeichnis korrekt auf /root/ um.

Update2: Das ist nicht in allen Linux-Distributionen so. Bei Ubuntu wird $HOME nicht neu gesetzt, bei Fedora udn Arch Linux dagegen schon. Man kann dies bei sich selbst testen, indem man mit sudo ein neues Terminal öffnet und dort die $HOME-Variable ausgibt. Bei mir unter Xfce ist das:

$ sudo xfce4-terminal
#echo $HOME

Sollte man die Linux-Distributionen öfters wechseln, sollte man sich dennoch besser an die Option -H gewöhnen.

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Linuxpresso am :

Danke für den Hinweis!

Aber betrifft das gksudo nun auch oder da gerade nicht?

Dee am :

Die grafischen Pendants zu sudo setzen das Benutzerverzeichnis korrekt auf /root/ um. Habe das eben mal ergänzt.

Matthias am :

Cool, danke ^.^

Christian am :

Hi
Dein Artikel ist nicht ganz korrekt. Wenn ich auf Fedora 18 Programme mit
$ sudo [programmname]
starte und dann $HOME abfrage, erhalte ich immer '/root', nicht mein eigenes Benutzerverzeichnis.

Slopjong am :

Arch Linux handled das genauso. Mit welchen Distributionen bzw. sudo Versionen ist das denn nicht so?

Dee am :

Danke für den wichtigen Hinweis. Das werde ich oben ergänzen!

Dee am :

Ich habe es im Beitrag ergänzt Dank Deines und Christians Hinweis ergänzt. Bei mir ist es unter Ubuntu noch so "falsch".

Markus am :

Da ich es sowieso lästig finde, vor jedem Kommando immer explizit "sudo" schreiben zu müssen, führe ich unter Ubuntu vor Administrationsaufgaben meist

"sudo su -"

aus. "su" wechselt ja bekanntlich zum Benutzer "root". Da dies unter Ubuntu nicht direkt möglich ist, stellt man "sudo" voran. Entscheidend ist aber der Strich am Ende: er weist "su" an, eine Login-Shell zu öffnen, d. h. man erhält in die Umgebung des Benutzers "root".

Markus am :

Ups, ich meinte natürlich "man erhält die Umgebung des Benutzers "root"."

Matthias am :

bugbuntu :p

Patrick am :

Hallo,

geht nur Ubuntu hier einen Sonderweg? Würde sudo ~/root nutzen, gebe es das Problem doch gar nicht?

Grüße Patrick

Dee am :

Ich bin unsicher, ob das vielleicht nicht aus Debian so kommt. Ggf. hat ja jemand Debian und kann das testen.

Matthias am :

sudo ist von debian ursprünglich - das wäre schon heavy :p

Maik am :

Unter Debian wird /root benutzt - scheint also ein reines Ubuntuproblem zu sein

Patrick am :

Dann wäre es allerdings recht interessant, wieso Ubuntu einen eigenen Weg geht. Hat ja technische Nachteile.

Grüße Patrick

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Formular-Optionen