Login
Newsletter
Mi, 29. September 2004, 22:59

Shutdown für unprivilegierte Benutzer

Normalerweise darf nur root den Rechner neu starten oder herunterfahren.

Das ist auf einem Multi-User-Betriebssystem auch wünschenswert, denn hier besitzt nur der Administrator die ultimative Kontrolle. Manchmal ist es aber notwendig, oder auf einem Desktop-System angenehm, den Rechner auch als normaler Benutzer auszuschalten, ohne vorher das root-Passwort eingeben zu müssen. Dieser Kurztipp erklärt vier Varianten, wie man als Benutzer dies erreichen kann.

Variante: SUID-Bit setzen

Unelegant ist es, wenn man bei /sbin/shutdown das SUID-Bit setzt:

chmod +s /sbin/shutdown

Hierbei kann aber jeder Benutzer den Rechner herunterfahren. Das ist jedoch unsicher und auch nicht erwünscht.

2. Variante: /etc/shutdown.allow

Shutdown besitzt ACLs (Access Control Lists). Hiermit kann man maximal 32 Benutzer privilegieren, den Rechner zu booten. Dazu editiert man die Datei /etc/shutdown.allow und fügt die berechtigten Nutzer dort ein (jeweils der Loginname pro Zeile).

Nun kann jeder angemeldete Nutzer, der dort eingetragen ist, den Rechner z.B. mit

/sbin/shutdown -a -r now

neu booten. Der Parameter -a dient als Referenz auf /etc/shutdown.allow.

Wenn man auch die Tastenkombination STRG-ALT-ENTF aktivieren will, dann fügt man die Zeile

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

zu /etc/inittab hinzu. Normalerweise besitzt aber jede moderne Linux-Distribution bereits einen solchen Eintrag.

3. Variante: sudo

Mittels sudo (super user do) kann man für jeden Nutzer Befehle einrichten, die dieser als root ausführen darf. Hierzu editiert man /etc/sudoers (ist normalerweise schreibgeschützt) und fügt zwei Einträge hinzu:

# Cmnd alias specification
Cmnd_Alias SYSTEM = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/poweroff

# User privilege specification
gdm ALL=(root) NOPASSWD: SYSTEM

Der Benutzer gdm darf in diesem Beispiel nun vier Befehle mit root-Rechten ausführen. Einfach sudo vor dem Befehl setzen.

4. Variante: Login Manager

Oft ist es auch erwünschenswert, wenn jeder Nutzer auf einem Desktop-System direkt über den Login-Manager den Rechner herunterfahren kann. Wenn man gdm benutzt (den Gnome Display Manager), editiert man die Datei /etc/gdm/gdm.conf und ändert die folgenden Einträge ab:

RebootCommand=/usr/bin/sudo /sbin/shutdown -r now \"Rebooted from gdm menu.\"
HaltCommand=/usr/bin/sudo /sbin/shutdown -h now \"Halted from gdm menu.\"
SecureSystemMenu=false

Da unter 3. der Benutzer gdm berechtigt wurde, /sbin/shutdown mit root-Rechten auszuführen, darf nun jeder Nutzer den Rechner booten.

Referenzen

  • man shutdown
  • man inittab
  • man sudo
  • man sudoers

Kommentare (Insgesamt: 30 || Alle anzeigen )
Re: acpid (kraut, Di, 22. Januar 2008)
Re[6]: Herunterfahren (dirk, Fr, 27. Januar 2006)
acpid (roland, Do, 7. Oktober 2004)
Re[4]: shutdown.allow (Binar, Di, 5. Oktober 2004)
Re[5]: Herunterfahren (Werner, Sa, 2. Oktober 2004)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten