Typischerweise sollen Anwender auf Firmen-Desktops nicht alles machen können, was ihnen gerade einfällt. Dem schiebt normalerweise das gewohnte Unix-Rechtesystem einen Riegel vor. Der Zugriff auf Anwendungen kann aber für jeden Benutzer auch abseits der Gruppenzugehörigkeit im Dateisystem geregelt werden. Die Wartung und Pflege der Programme bleibt mit den hier im Artikel gezeigten Maßnahmen für den Systembetreuer im üblichen Rahmen. Betriebliche Gegebenheiten lassen sich in der IT abbilden.
Eines oder mehrere der genannten Szenarien sprechen für die Einschränkung des Programmzugriffs:
Einen besonderen Anwendungsfall des "geführten" Benutzers stellt das Absetzen eines einzigen Kommandos dar. Befindet sich beispielsweise in einem Filialbetrieb kein Systembetreuer, kann trotzdem jemand vom örtlichen Personal einen Linuxserver nach Aufforderung herunterfahren (Benutzer »aus
«
) oder neu starten. Die übliche Tastenkombination [Strg]+[Alt]+[Entf] wurde im Beispiel deaktiviert.
Für dieses Beispiel muss das Paket »sudo
«
installiert werden. Der Benutzer »aus
«
wird vom Administrator Root angelegt und bekommt anschließend einen Eintrag in der Datei »/etc/sudoers
«
. Hierzu sollte man unbedingt das Programm »visudo
«
benutzen, das die Syntax der Datei überprüft. Andernfalls sperrt man sich bei Syntaxfehlern leicht aus dem System aus, wenn man keinen extra Root-Account besitzt.
Der Benutzer »aus
«
soll von jedem Rechner aus dem lokalen Netzwerk den Server herunterfahren können. Damit nach Eingabe des Benutzerpasswortes der Anwender keine Chance hat, in den Genuss des Shellzugriffes zu kommen, wird auf die Eingabe des Kennwortes für den sudo-Zugriff verzichtet. Der Eintrag in »/etc/sudoers
«
lautet deshalb:
aus ALL = NOPASSWD: /sbin/init
Bei Debian und Derivaten davon liegen im Home-Verzeichnis der Benutzer die Dateien ».bashrc
«
und ».profile
«
sowie ».bash_logout
«
. Darin eingetragene Befehle werden in der Reihenfolge abgearbeitet, ».bash_logout
«
erst beim Abmelden des Benutzers. In ».bashrc
«
werden die Kommandos zum Herunterfahren des Systems und für die "Zwangsabmeldung" am Dateiende angehängt:
sudo /sbin/init 0 exit
Damit ist der Sonderbenutzer einsatzklar.
Hier soll der eingeschränkte Benutzer eine einzige Anwendung ausführen. Sie wird direkt als Ersatz-Login-Shell gestartet, der entsprechende Eintrag in »/etc/passwd
«
lautet hierfür
inventur1:x:1012:1012:,,,:/home/inventur1:/home/inventur1/erfass.sh
Für Inventurarbeiten trägt »inventur1
«
per Hand oder Barcode-Leser eine Artikelnummer mit Stückzahl in eine Maske ein. Auch in diesem Beispiel soll der Anwender keinen direkten Shellzugriff erhalten. Das Problem liegt darin, die Tastenkombination [Strg]+[Z] abzufangen, welche die laufende Anwendung in den Hintergrund schiebt. Dies übernimmt das »trap
«
-Kommando. Wird die Tastenkombination ausgelöst, soll das Programm einfach weiterarbeiten. Dazu fügt man in das Shellskript die Zeile »trap '' 20
«
ein. Der Benutzer »inventur1
«
benutzt in Abbildung 1 die Tastenkombination [Strg]+Z, die aber durch diese Zeile ignoriert wird. Das Shellskript wird im Listing 1 gezeigt. Die Tastenkombination [Strg]+[C] beendet dieses kleine Programm.
Listing 1
Spezialanwendung
Die Beschränkung für Benutzer, eine einzige GUI-Anwendung zu betreiben, funktioniert ähnlich wie beim vorigen Beispiel. Hier entfällt die Notwendigkeit, die Tastenkombination [Strg]+[Z] zu deaktivieren. Der Benutzer »surf
«
bekommt die Anwendung »opera
«
als Login-Shell (mit absoluter Pfadangabe) in »/etc/passwd
«
zugewiesen. Mittels »ssh
«
wird über das lokale Netzwerk zugegriffen. Abbildung 2 zeigt den begleitenden Verlauf auf der Shell und die Anwendung. Schließt der Benutzer die Anwendung, wird er abgemeldet.