Die grundsätzliche Funktionalität von sudo habe ich im Artikel “sudo vs. su” bereits erklärt. In diesem Artikel möchte ich darauf eingehen, wie man einem Benutzer die Verwendung von sudo erlauben kann. Unter Linux gibt es hierfür die Datei “/etc/sudoers”. Diese sollte allerdings nicht mit einem beliebigen Editor bearbeitet werden, sondern ausschließlich mit “visudo”, da hiermit vor dem Speichern eine Syntax-Überprüfung erfolgt. Darauf weist auch der Kommentar “This file MUST be edited with the ‘visudo’ command as root.” am Dateianfang hin. Außerdem weiß visudo wo die sudoers-Datei auf dem System gespeichert ist, da der Pfad auf anderen Betriebssystemen (z.B. bei Mac OS X unter “/private/etc/sudoers”) auch abweichen kann. Wie visudo zu bedienen ist, kann im Artikel “Standard-Editor vi” nachgelesen werden, außerdem werden die verfügbaren Befehle in der Statusleiste angezeigt.
Mit dem folgenden Befehl öffnet man also die sudoers-Datei als Superuser:
visudo
Unter Debian sieht die Datei standardmäßig wie folgt aus:
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL
Damit wird dem Benutzer “root” auf allen Computern die Ausführung aller Befehle mit/unter jedem Benutzer erlaubt. Im Allgemeinen können fünf Einstellungen pro Zeile festgelegt werden:
- Benutzer: Ein Benutzer oder Alias (Standard: muss festgelegt werden).
- Host: Ein Host oder Alias (Standard: muss festgelegt werden).
- =
- (Runas): Mit/Unter welchem Benutzer der Befehl ausgeführt wird (in runden Klammern geschrieben) (Standard: root).
- Authentifizierung: Ob nach dem Benutzer-Passwort gefragt werden soll (PASSWD) oder nicht (NOPASSWD) gefolgt von “:” und anschließend Befehl (Standard: nach Passwort fragen).
- Befehl: Ein oder mehrere Befehle oder Alias (Standard: muss festgelegt werden).
# User privilege specification root ALL=(ALL) ALL
könnte mit der selben Wirkung vereinfacht
# User privilege specification root ALL=ALL
oder erweitert wie folgt geschrieben werden:
# User privilege specification root ALL=(ALL) PASSWD:ALL
Auch mehrere Befehle können angegeben werden, z.B. dass immer nach dem Benutzer-Passwort gefragt wird, außer für /sbin/reboot:
username ALL=NOPASSWD:/sbin/reboot,PASSWD:ALL
Wie bereits erwähnt können für Benutzer, Host und Befehl auch ein Alias angegeben werden. Diese können wie folgt festgelegt und aktiviert werden:
# Host alias specification Host_Alias SERVER=host1,host2 # User alias specification User_Alias MAINTAINER=username1,username2 # Cmnd alias specification Cmnd_Alias DEB=/sbin/reboot,/usr/bin/aptitude # User privilege specification root ALL=(ALL) ALL MAINTAINER SERVER=(root) PASSWD:DEB
Die oben erwähnten Konfigurationen nochmals übersichtlich zusammengefasst:
# User privilege specification # USER HOST =(RUNAS) PASSWD/NOPASSWD COMMAND root ALL =(ALL) ALL root ALL = ALL # same as above root ALL =(ALL) PASSWD: ALL # same as above MAINTAINER SERVER=(root) PASSWD: DEB
Verwandte Beiträge
- Debian mit festen Freeze-Zeitpunkten
- Debian GNU/Linux 5.0 veröffentlicht
- Standard-Editor vi
- sudo vs. su
- Programme mit Root-Rechten ausführen oder sudo
Recent Comments