sudo
sudo (kurz für substitute user do[1]) ist ein Befehl unter Unix und unixartigen Betriebssystemen wie Linux oder Mac OS X, der dazu benutzt wird, Prozesse mit den Rechten eines anderen Benutzers (z. B. des Superusers root) zu starten ohne dessen Passwort kennen zu müssen. Im Gegensatz zu dem nicht zu sudo gehörenden su ist einstellbar, welche Befehle ausgeführt werden dürfen. Der dauerhafte Wechsel der Identität ist ebenfalls möglich durch sudo -s und sudo -i.
Inhaltsverzeichnis |
Geschichte [Bearbeiten]
Der Befehl wurde um 1980 an der State University of New York at Buffalo „erfunden“, weil man erkannte, dass viele Studenten Befehle brauchten, die eigentlich nur von Administratoren benutzt werden dürfen, die jedoch keine Gefahr für das existierende System darstellten. Bob Coggeshall und Cliff Spencer implementierten den Befehl auf einem VAX-11/750 unter 4.1BSD. Der ursprüngliche sudo-Befehl wurde 1983/84 für AT&Ts Unix-System V entwickelt. 1991 schrieben Dave Hieb und Jeff Nieusma eine neue Version für die Firma „The Root Group“. Diese Version wurde später unter der GNU General Public License veröffentlicht. Darauf basierte Todd Millers „CU sudo“, das erstmals 1994 erschien. 1999 wurde die Vorsilbe „CU“, die bis dahin der Unterscheidung von der „Root Group“-Version gedient hatte, gestrichen. Seit Version 1.6 ist kein Originalcode dieser Version mehr im vormaligen CU sudo enthalten, das unter einer BSD-Lizenz erhältlich ist.
Konfiguration [Bearbeiten]
In der Datei /etc/sudoers wird festgelegt, welche Benutzer oder Gruppen bestimmte Programme mit welchen Rechten ausführen dürfen. Eine einfache Variante ist z.B.:
- %admin ALL = (root) NOPASSWD: ALL
Dies bedeutet, dass die Mitglieder der Gruppe 'admin' ohne Eingabe ihres persönlichen Passworts alle Kommandos mit Root-Rechten ausführen dürfen. Die Bearbeitung der sudoers sollte aus Sicherheitsgründen nur dem Superuser erlaubt sein.
Alternative [Bearbeiten]
Aufgrund der funktionsbedingten Arbeitsweise die Ausführung von Programmen zu steuern ist über sudo eine unbedachte Ausweitung von Rechten möglich. Weitergehende Techniken wie die Zuordnung einzelner Rechte zu Benutzern sind etwa Role Based Access Control und Mandatory Access Control.
Windows [Bearbeiten]
Es gibt Implementierungen für Windows wie sudowin[2] und SuRun[3], die den sudo-Mechanismus teilweise nachbilden.
Der Befehl runas unter Windows 2000 oder höher erlaubt das Starten von Programmen mit den Rechten eines anderen Benutzers, ist aber nicht mit sudo gleichzusetzen, sondern eher mit dem Unix-Kommando su: Bei runas muss ebenso im Gegensatz zu sudo das Passwort des Accounts bekannt sein, dessen Privilegien benutzt werden sollen. Der Mechanismus User Account Control (UAC) unter Microsoft Windows Vista und Windows 7 ist ebenfalls nicht mit sudo gleichzusetzen ist, da statt der Ausführbarkeit von Dateien Rechte auf Ressourcen vergeben werden.
Weblinks [Bearbeiten]
- Offizielle Webpräsenz
sudo(8)– Linux-Manpage (deutsch)- Deutschsprachige sudo-Anleitung
- sudo-Skripts