Ubuntu: Merkwürdiges sudo-Verhalten

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

Quellen

3 Gedanken zu „Ubuntu: Merkwürdiges sudo-Verhalten“

  1. Um dieses zu verhindern, habe schon einige Jahre ein Alias für sudo, das so aussieht: sudo -H

Kommentare sind geschlossen.