sudo
verhält sich unter Ubuntu in einem Detail anders als bei den restlichen Linux-Distributionen: Nach sudo -s
verwendet root
nicht sein eigenes Home-Verzeichnis (/root
), sondern das des zuletzt aktiven Benutzers (/home/accountname
). Das hat diverse Vor- und Nachteile — und führt offensichtlich zu Sicherheitsproblemen.
Der feine Unterschied
Fedora und die meisten anderen Linux-Distributionen verhalten sich so:
kofler@fedora$ echo $HOME
/home/kofler
kofler@fedora$ sudo -s
root@fedora# echo $HOME
/root
Unter Ubuntu gilt hingegen:
kofler@ubuntu$ echo $HOME
/home/kofler
kofler@ubuntu$ sudo -s
root@ubuntu# echo $HOME
/home/kofler
Vorteile
Das Verhalten von Ubuntu hat den Vorteil, dass nach sudo -s
diverse Einstellungen (/home/accountname/.vim
, /home/accountname/.emacs
usw.) auch für root
gelten. Das ist natürlich praktisch.
Die von anderen Linux-Distributionen abweichende sudo
-Konfiguration wurde 2011 in einer Reaktion auf diesen Bugbericht eingeführt.
Nachteile
Mit sudo
ausgeführte Programme erzeugen in /home/accountname
Dateien mit root
-Rechten, die der gewöhnliche Benutzer dann nicht mehr überschreiben kann. Das ist immer wieder lästig, aber nicht wirklich tragisch. (Abhilfe schaffen sudo rm xxx
oder sudo chown xxx
.)
Allerdings kann das Verhalten unter Umständen auch Sicherheitsprobleme verursachen, wie sie in diesem Bugbericht (erstellt im März 2016!) dokumentiert sind. Deswegen regt der Canonical-Mitarbeiter Dan Streetman nun sowohl im Bugbericht als auch in der Ubuntu-Developer-Mailingliste an, dass Ubuntu in zukünftigen Versionen zurück zur sudo-Defaultkonfiguration wechselt. (Eine Änderung in den aktuellen Versionen erscheint ein zu großer Eingriff.)
Selbsthilfe
Wenn Sie nicht auf die nächste Ubuntu-Version warten möchten, fügen Sie einfach die folgende Zeile in /etc/sudoers
ein:
# /etc/sudoers
...
Defaults always_set_home
Eine andere Möglichkeit wäre, unter Ubuntu das Kommando sudo -i zu verwenden.
Danke für die Info! Hatte bereits Kreuzproblematiken…
Um dieses zu verhindern, habe schon einige Jahre ein Alias für sudo, das so aussieht: sudo -H