10 Grundlegende Administration
»Der Computer rechnet mit allem --
nur nicht mit seinem Besitzer.«
– Dieter Hildebrandt
Um ein Linux-System in seinen gesamten Facetten nutzen zu können, muss man es notwendigerweise administrieren können. Und mit genau dieser Problematik befasst sich dieses Kapitel. Es macht Sie zwar nicht zu einem zertifizierten Linux-Admin, aber Sie werden lernen, die wichtigsten anfallenden Aufgaben zu erledigen.
10.1 Benutzerverwaltung
Ein guter Punkt, um mit der Arbeit zu beginnen, ist die Verwaltung von Benutzern. Bevor wir aber irgendwelche Lösungen und Arbeitsweisen beschreiben, wollen wir diese Problematik zuerst in Ihren bisherigen Wissenskontext einordnen.
10.1.1 Das Verwalten der Benutzerkonten
Bei den meisten Distributionen wird man bereits während der Installation dazu gebracht, sich einen Benutzernamen auszusuchen und entsprechende Passwörter festzulegen. Wenn Sie aber Ihren Computer nicht allein nutzen oder vielleicht sogar ein größeres Mehrbenutzersystem aufsetzen möchten, kommen Sie schnell in die Situation, dass Sie neue Benutzerkonten anlegen müssen.
adduser und useradd
Für dieses Vorgehen gibt es zwei Programme, die eigentlich eines sind. Neue Benutzer werden über das Programm useradd mit vielen Kommandozeilenoptionen angelegt. Das Programm adduser ist dabei nur ein hübsches Frontend für dieses Programm, das von vielen Distributionen schon passend vorkonfiguriert ist.
# adduser mploetner Lege Benutzer mploetner an... Lege neue Gruppe mploetner (1002) an. Lege neuen Benutzer mploetner (1002) mit Gruppe mploetner an. Erstelle Homeverzeichnis /home/mploetner. Kopiere Dateien aus /etc/skel Enter new Unix password: <tippsel> Retype new Unix password: <tippsel> passwd: password updated successfully Ändere Benutzerinformationen für mploetner Geben Sie einen neuen Wert an oder ENTER für den Standardwert Name []: Maria Plötner Raum []: Telefon geschäftlich []: Telefon privat []: Sonstiges []: Sind die Informationen korrekt? [j/n] j #
Listing 10.1 Das Anlegen eines Benutzers mit adduser
Was macht aber adduser genau? Es nimmt den neuen Benutzernamen als Argument von der Kommandozeile entgegen und sucht sich eine neue UID aus. Da adduser der schlauere der beiden Befehle zum Anlegen neuer User ist, sucht er sich eine Benutzer-ID passend zum aktuellen Systemstatus heraus. Viele Distributionen nutzen beispielsweise erst die IDs ab 500 oder 1000 für Benutzeraccounts und reservieren die unteren für Systemaccounts. Daher nimmt adduser einfach die erste freie ID ab dieser Grenze.
Danach wird der Benutzer erst einmal angelegt, also ein Eintrag für ihn in der /etc/ passwd vorgenommen. Diese Datei sieht ungefähr so aus:
root:x:0:0:root:/root:/bin/bash … jploetner:x:1000:1000:Johannes Plötner:/home/jploetner:/bin/bash … mploetner:x:1002:1002:Maria Plötner:/home/mploetner:/bin/bash
Hier kann man viele wichtige Informationen über die Benutzer sehen, daher ist die Datei für alle lesbar. Aus diesem Grund sind hier auch keine verschlüsselten Passwörter zu sehen. Das x in der zweiten Spalte sagt nämlich aus, dass das Passwort für diesen Benutzer bzw. diese Benutzerin in der /etc/shadow zu finden ist. (Das war früher anders. Da stand das verschlüsselte Passwort noch in der Datei /etc/passwd. Es wurde schließlich aber aus Sicherheitsgründen in die Datei /etc/shadow ausgelagert.) Der Benutzername steht dabei in der ersten Spalte, die Benutzer-ID gefolgt von der Gruppen-ID in der dritten bzw. vierten Spalte. Das nächste Feld ist frei belegbar, wird aber meist für den vollen Namen und weitere Informationen genutzt. Danach folgen das Homeverzeichnis und die Standardshell des Benutzers. Es gibt alternative Shells, die hier eingetragen werden können. Man kann aber auch statt eines Kommandozeileninterpreters jedes andere Programm hier eintragen. Allerdings kann sich der Benutzer dann unter Umständen nicht mehr richtig einloggen.
Diese Einträge werden also von adduser sinnvoll vorgenommen. Zudem wird eine neue Gruppe allein für diesen Benutzer erstellt, und er wird, je nach Einstellung des Administrators bzw. der Administratorin, zusätzlich den schon existierenden Gruppen zugeteilt.
Als Nächstes erfolgt ein wichtiger Schritt: Das Homeverzeichnis für den neuen Benutzer wird erstellt. Dazu wird eine Art Skelett, die Vorlage eines Homeverzeichnisses, an die entsprechende Stelle kopiert und mit den richtigen Berechtigungen und Eigentumsverhältnissen versehen. Diese Vorlage liegt unterhalb von /etc/skel/ und kann vom Administrator noch nach seinen Wünschen bearbeitet werden. So können Sie beispielsweise erreichen, dass das System nach der Erstellung eines neuen Users für diesen schon fix und fertig konfiguriert ist.
Während adduser also seine Arbeit erledigt, fragt es fleißig alle Informationen ab, die es nicht selbst bestimmen kann. Dazu gehört natürlich das Passwort für den neuen Benutzer bzw. die neue Benutzerin. Das Passwort kann man während der Eingabe nicht sehen, daher muss man es zur Kontrolle zweimal eingeben. Danach wird das neue Passwort in die nur für root zugängliche /etc/shadow geschrieben. Schließlich werden noch die Angaben für das Optionenfeld in der /etc/passwd abgefragt. In unserem Beispiel wurde aber nur der volle Name des Benutzers angegeben.
deluser und userdel
Dieses Spiel funktioniert beim Löschen eines Benutzeraccounts ähnlich. Auch hier ist die deluser-Variante ein Frontend für den Befehl userdel.
# deluser [--remove-home] [--remove-all-files] [--backup] user
Listing 10.3 Die deluser-Syntax
Bei deluser benutzer gibt es nur eine Sache zu beachten: Standardmäßig wird zwar der Benutzer gelöscht, das Homeverzeichnis bleibt allerdings erhalten. Möchten Sie es löschen, benutzen Sie die Option --remove-home bzw. --remove-all-files, die entweder nur das Homeverzeichnis oder gleich alle Dateien des Benutzers löscht. Wählen Sie dazu noch die --backup-Option, werden die entsprechenden Dateien vorher noch als gepacktes Archiv ins aktuelle Verzeichnis gelegt.
Und das Ganze mit Gruppen
Um den Reigen zu vollenden, gibt es auch für Gruppen die entsprechenden Befehle, die konsequenterweise addgroup bzw. delgroup heißen. Die Benutzung dieser Befehle erfolgt eigentlich analog zu ihren Geschwistern; bei Fragen und Problemen hilft hier die Manpage sehr gut weiter.
Es gibt natürlich auch hier einige Sachen, die Sie beachten müssen: zum Beispiel, dass eine Gruppe nach dem Erstellen leer ist, also kein Benutzer in dieser Gruppe ist. Darüber hinaus kann eine Gruppe nicht gelöscht werden, solange sie noch einem Benutzer als primäre Gruppe zugewiesen ist, sie also für ihn in der /etc/passwd vermerkt ist.
10.1.2 Benutzer und Gruppen
Jetzt möchten wir die frisch erstellten Gruppen und Benutzer natürlich noch zusammenbringen. Wenn Sie sich im letzten Abschnitt gefragt haben, warum in der /etc/passwd nur eine einzige Gruppe festgelegt wird, dann dürfen Sie sich selbst auf die Schulter klopfen, weil Sie so gut mitgedacht haben.
Die /etc/group
Benutzer können selbstverständlich Mitglied in mehreren Gruppen sein – und um den Umfang der /etc/passwd nicht zu sprengen, wurden diese Einstellungen einfach in die /etc/group ausgelagert.
root:x:0: … users:x:100:jploetner,mploetner … usb:x:106:jploetner,mploetner jploetner:x:1000:jploetner … mploetner:x:1002:mploetner
Listing 10.4 Auszug aus der /etc/group
Wie Sie sehen, ist die Datei ähnlich wie die /etc/passwd aufgebaut. An erster Stelle steht wieder der Gruppenname, gefolgt von einem x. Dieses x steht wieder dafür, dass das Gruppenpasswort verschlüsselt in die /etc/gshadow ausgelagert wurde, die wiederum nur root lesen kann. Als nächstes Feld folgt die GID, und schließlich kommen die durch Kommata separierten Mitglieder der Gruppe.
Im obigen Beispiel gibt es also die Gruppe users mit der GID 100 und den Mitgliedern jploetner und mploetner. Die Gruppe jploetner hat dagegen nur ein Mitglied, nämlich den gleichnamigen User.
Wenn man sich /etc/passwd und /etc/group anschaut, fällt außerdem auf, dass gleichnamige Gruppen und Benutzer dieselbe GID bzw. UID haben. Das ist allerdings reiner Zufall, da beim Erstellen der Benutzer ja auch ihre speziellen Gruppen erstellt worden sind und in der Zwischenzeit keine weiteren Gruppen per Hand hinzugefügt wurden.
Benutzer zu weiteren Gruppen hinzufügen
Wenn Sie bereits existierende Benutzer zu bestehenden Gruppen hinzufügen möchten, nutzen Sie einfach das adduser-Kommando:
# adduser jploetner projektX Adding user jploetner to group projektX... Done.
Listing 10.5 Benutzer zu Gruppen hinzufügen
Ein Beispiel
Werden wir also mal praktisch. Nehmen wir an, Sie hätten Ihre gesamte Musiksammlung digitalisiert, und Sie möchten sie allen Benutzerinnen und Benutzern des Systems zur Verfügung stellen.
Also sollten Sie eine Gruppe users haben, die aller Wahrscheinlichkeit nach schon auf Ihrem System existiert. Eventuell müssen Sie in diese Gruppe nur noch alle Benutzer eintragen, falls adduser das nicht schon für Sie übernommen hat. Als Nächstes fehlt Ihnen noch ein schönes Verzeichnis mit den entsprechenden Rechten. Weil uns nichts Besseres einfällt, erstellen wir einfach eines unterhalb von /home und nennen es ganz unkreativ auch noch musik:
# cd /home # mkdir musik # chown root:users musik # chmod 2770 musik
Listing 10.6 Unser Musikverzeichnis
An dieser Stelle haben wir dann gleich auch die entsprechenden Rechte gesetzt. Das Verzeichnis gehört root bzw. der Gruppe users, also haben alle Benutzer über die Gruppenrechte schon mal Zugriff. Jetzt setzen wir mit dem chmod-Aufruf aber nicht nur die normalen Zugriffsrechte für die Gruppen, sondern wir setzen auch noch das SetGID-Bit. In diesem Kontext veranlassen wir damit, dass alle Dateien, die in diesem Verzeichnis erstellt bzw. in es hineinkopiert werden, automatisch der Gruppe users gehören – folglich hat jeder auch auf neue Dateien Zugriff, und Ihre Mitbenutzerinnen und -benutzer können die Sammlung ohne Probleme erweitern.