heute erzählte mir ein Anwender eines Linuxs, dass er Probleme mit Programm X hatte. Auf weitere Nachfragen erklärte er die genaue Fehlermeldung und sagte:
QUOTE:
Programm als "sudo su" gestartet
Verwirrt, starrte ich auf diese Aussage. Was, so fragte ich mich, wollte er mir damit sagen? Klar war, dass er als root arbeitete (was auch notwendig war).
Aber warum funktionierte es?
Auf einem Desktop Linux, wo für einen Benutzer alle Befehle mittels sudo freigegeben sind, bewirkt dieses Statement:
Führe su als Benutzer root aus.
su wird dafür benutzt, um sich als anderer Benutzer am Rechner anzumelden. Also z.B. kann man mit su root werden, wenn man das Passwort von root kennt. Su fragt dafür das Passwort des gewünschten users ab, und ersetzt sich anschließend durch eine Shell, die unter diesem Benutzer läuft (wenn denn das Passwort stimmt). Wenn wie in diesem Fall, keine Benutzerkennung su mitgegeben wird, wird angenommen, dass man root werden möchte. Wenn man aber bereits root ist (denn su wird bereits mit Rechten des Superusers ausgeführt), dann fragt su nicht nach einem Passwort, denn man ist ja root und darf alles. Es ersetzt sich somit brav durch eine Shell, die mit Root Rechten läuft.
Man hat also durch diesen umständlichen Weg eine Root-Shell bekommen. Dabei sollte doch durch einen Blick in die Manpage klar sein, dass man auch mit sudo -s eine Rootshell bekommen kann.
Ganz besonders lustig ist das, wenn man sudo als NOPASSWD konfiguriert hat. So spart man sich die Passworteingabe von su!1ELF!!
Liebe Ubuntu und andere sudo-Nutzer,
wenn ihr unbedingt eine root Shell haben wollt, dann nehmt sudo -s. Meinetwegen nehmt auch sudo bash. Aber sudo su ist nun wirklich Blödsinn. Ach ja, und wenn wir schonmal dabei sind, zum Editieren von Dateien, die root gehören, kann man sudo -e benutzen. Nicht sudo nano.
Woher ich das alles weiß?
Manpage lesen bildet.
