Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Kurzfristiger Benutzerwechsel: su Benutzerverwaltung Pseudobenutzer zum Shutdown »

Administrationsaufgaben starten: sudo

Es gibt diverse Aufgaben, für die man die Berechtigung von root braucht, die aber durchaus auch in die Hände einzelner Benutzer gelegt werden können. Dennoch möchte man diesen Benutzern deswegen nicht gleich das Passwort von root verraten. Diese Lücke schließt das Programm sudo.

Der Aufrufer stellt den Befehl sudo einem Kommando voran. Das bewirkt, dass das Kommando unter einer fremden Benutzerkennung läuft, typischerweise der des Administrators. Die einzelnen Befehle und die Anwender, die sie benutzen dürfen, werden vorher festgelegt. Jede Benutzung von sudo wird exakt protokolliert.

Die Konfigurationsdatei /etc/sudoers hält die Information, welche Benutzer den Befehl sudo verwenden dürfen. Sie wird nicht direkt, sondern mit dem Programm visudo als root editiert. Die Datei sudoers wird in mehrere Gruppen eingeteilt. Die ersten Gruppen haben nur den Zweck, Makros zu bilden, um die Rechte einfacher zu beschreiben. Als Benutzerprivilegien ist von vornherein eingetragen, dass root auf allen Rechnern alles darf. Neu hinzu kommt, dass der Benutzer arnold seine Datensicherung auf gaston ausführen darf.

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
arnold  gaston = /root/msg
arnold  gaston = /home/arnold/bin/cddasi

Da das Skript cddasi per cdrecord (siehe S. cdrecord) auf den CD-Brenner zugreift, braucht man die root-Rechte. Man kann das Problem lösen, indem man der Gerätedatei des Brenners freie Rechte mit chmod gibt. Damit ist das Gerät für jeden zu jeder Verwendung freigegeben. Man kann auch den in den Manpages von cdrecord vorgeschlagenen Weg gehen und für den Befehl cdrecord das SUID-Bit (siehe S. suid) setzen:

chmod 4755 cdrecord

Damit würde immerhin erreicht, dass der Zugriff auf den Brenner nur über die Anwendung cdrecord kontrolliert erfolgen kann. Die Freigabe per sudo ermöglicht aber sogar die Einschränkung auf das Skript cddasi. Der Anwender darf mit dem Brenner also ausschließlich seine Datensicherung duchführen. Er kann beispielsweise keine Audio-CDs brennen. Des Weiteren ermöglicht sudo, dieses Recht einzelnen aufgeführten Anwendern zu gewähren. Und zu guter Letzt wird die Verwendung des Befehls auch noch protokolliert.

Will der Benutzer arnold das Skript cddasi ausführen, gibt er das Kommando mit vorangestellten sudo ein:

sudo /bin/cddasi

sudo fragt nun nach einem Passwort. Dies ist aber nicht das Passwort von root, sondern das des angemeldeten Benutzers. Damit wird vermieden, dass jemand die nicht geschlossene Konsole bei kurzfristiger Abwesenheit für privilegierte Aufgaben nutzen kann.

In der Protokolldatei des syslog-Dämons (meist /var/log/messages, siehe S. syslog) wird protokolliert, dass der Benutzer arnold das Skript als root ausgeführt hat. Hier sind zwei Protokolleinträge dargestellt. Der erste wurde ohne Berechtigung durchgeführt. Im zweiten wurde der Eintrag in der Datei sudoers eingetragen:Aus drucktechnischen Gründen wurden die Zeilen umbrochen.:

Mar  9 05:45:30 gaston sudo:   arnold : command not allowed ;
            TTY=pts/5 ; PWD=/home/arnold ; USER=root ;
            COMMAND=/home/arnold/bin/cddasi
Mar  9 05:46:18 gaston sudo:   arnold : TTY=pts/5 ; 
            PWD=/home/arnold ; USER=root ; COMMAND=bin/cddasi

Wie oben schon erwähnt wurde, kann man in der Datei sudoers auch mit Makros arbeiten. Dabei können mehrere Benutzer, Maschinen und Kommandomakros gebildet werden und in der Rechtevergabe verwendet werden:

User_Alias     DEPUTIES = wim, wum, wendelin
Host_Alias     SERVERS = gaston, asterix, silver
Cmnd_Alias     HALT = /usr/sbin/halt, /usr/sbin/fasthalt
DEPUTIES SERVERS = HALT

Hier können alle Benutzer, die unter DEPUTIES aufgeführt sind, alle Server herunterfahren. Vielleicht ist es irritierend, dass in der Datei auch die root-Rechte fremder Rechner festgelegt werden. Es ist natürlich nicht möglich, auf einem Rechner festzulegen, welche Rechte ein Anwender auf einem andern Rechner bekommt. Jeder Rechner kann seine root-Rechte nur selbst vergeben. Der Grund, dass hier auch Hostnamen genannt werden, besteht darin, dass die Datei sudoers per NIS (siehe S. nis) verteilt werden kann und dann jeder Rechner anhand des Rechnernamens nur den Teil übernimmt, der für ihn gedacht ist.

Durch den Aufruf von sudo -l kann ein Benutzer sehen, welche Kommandos er unter sudo ausführen kann.

Das Programm sudo hat noch vielfältige Optionen. So kann für einzelne Kommandos oder Gruppen die Passworteingabe abgeschaltet werden. Es kann konfiguriert werden, dass das Protokoll per Mail versandt wird. Diese Informationen findet man in den umfangreichen Manpages von sudo und sudoers.



« Kurzfristiger Benutzerwechsel: su | Benutzerverwaltung | Pseudobenutzer zum Shutdown »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de