GNU Linux Shutdown für normale Benutzer

Normalerweise ist das sichere herunterfahren des Computers unter GNU Linux nur dem privilegierten User root gestattet.
Dies macht in einer Serverumgebung Sinn, denn die Sekretärin soll schließlich nicht den Firmenserver herunterfahren können.

Was aber nun, wenn man ein System hat, auf dem zwar mehrere Benutzer zugelassen sind (Vater, Mutter, Tochter, Sohn) aber nur jeweils einer arbeitet und nach getaner Arbeit den Rechner abschalten möchte?
Ohne das root Passwort, das nur der Vater besitzt, ist dies nicht möglich.

Wer eines der folgenden Desktopsysteme (KDE,Gnome) installiert hat, ist fein raus.
Denn diese Systeme verfügen über einen entsprechenden Mechanismus, der es auch normalen Benutzern erlaubt den Computer sicher herunterzufahren. Stichwort Menü Abmelden, dort findet man Punkte wie Reboot und Rechner abschalten.

Benutzt man, wie ich, den schlanken und schnellen Windowmanager IceWM, muß man etwas nachbessern.
Wie; soll hier gezeigt werden.
Dies kann allerdings nur der Superuser root erledigen, also immer schön nett sein zum Dad. :-)

Man bedient sich des Mechanismus sudo, dieser erlaubt einen Befehl mit den Rechten z.B. des Superusers auszuführen.
Als erstes editiert man die Datei /etc/sudoers dies macht man indem man den Befehl

visudo

in einem Terminal eingibt. Dadurch wird ein vi-ähnlicher Editor gestartet der gleich auch das überprüft was man so eingibt, nett nicht wahr? Wer mehr wissen möchte: man visudo hilft weiter.
Meine Datei (Mandriva Limited Edition 2005) sieht nach der Änderung so aus:

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification
Cmnd_Alias SYS = /sbin/shutdown

# Defaults specification

# Runas alias specification

# User privilege specification
root ALL=(ALL) ALL
mike ALL=(root) NOPASSWD: SYS

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now

Hinzugekommen sind folgende Zeilen:

Cmnd_Alias SYS = /sbin/shutdown

mike ALL=(root) NOPASSWD: SYS

Möchte man nicht nur dem Benutzer mike erlauben den Rechner herunterzufahren, so trenne man weitere Benutzer durch Komma, z.B. mike, steffi, frank, sybille.

Damit kann nun jeder aufgeführte Benutzer den Rechner mittels des Kommandos:

sudo /sbin/shutdown -h now

herunterfahren, ziemlich langer Befehl nicht wahr?
Merken wird ihn sich auch keiner aus der Familie, also was nun?

Man kann ihn in ein kleines Shellscript verpacken, z.B.

#!/bin/bash
sudo /sbin/shutdown -h now

Das Script nenne man dann z.B. sht und lege es in /usr/local/bin ab.
Zum Abshluß noch mittels

chmod +755 sht

für alle ausführbar machen.

Und das wars auch schon.
Nachdem man sich nun von IceWM abgemeldet hat, gibt man in einem Terminal

sht

ein, und schon fährt der Rechner sicher runter und schaltet sich ab.


zuletzt bearbeitet am 28.12.2012