admin.jpg

Kommandozeilen-Admins

useradd, usermod, userdel

01.12.2002
Viele Wege führen zu einem neuen Benutzer-Account auf Ihrem Linux-Rechner – entweder editieren Sie alle Konfigurationsdateien von Hand oder benutzen ein grafisches Tool der eigenen Distribution (YaST, userdrake oder redhat-config-users). In dieser Zu-Befehl-Folge begeben wir uns auf die Admin-Seite des Linux-Lebens und zeigen Hintergründe, Tricks und Werkzeuge der Benutzerverwaltung auf der Kommandozeile.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Back to the <C>root<C>s…

Alle vorgestellten Befehle und Kommandos erfordern root-Rechte. Bevor wir uns den einzelnen Programmen zur Benutzerverwaltung zuwenden, werfen wir einen Blick in die entsprechenden Konfigurationsdateien und erklären deren Aufbau. Grundsätzlich führen die folgenden Schritte zu einem neuen Account:

  • Benutzername, UID und Gruppenzugehörigkeit festlegen
  • Daten in die entsprechenden Dateien unter /etc eintragen
  • Passwort für den neuen Account setzen
  • Home-Verzeichnis für den User anlegen
  • optional: Konfigurationsdateien aus /etc/skel in das neue Home-Verzeichnis kopieren
  • mit chown und chgrp die Rechte für das neue /home anpassen

Um einen neuen User von Hand anzulegen, editieren Sie zunächst /etc/passwd, die zentrale Datei zur Verwaltung von User-Daten unter Unix, mit Ihrem Lieblings-Editor. Auf älteren Systemen befanden sich die Passwörter der einzelnen Benutzer in dieser Datei; heute werden diese nach /etc/shadow ausgelagert. Die einzelnen Zeilen dieser Textdatei bestehen aus verschiedenen "Feldern", jeweils durch einen Doppelpunkt voneinander abgetrennt:

username:password:UID:GID:additionalInfo:home:shell

Im Klartext bedeutet das:

  • username: Der Name, mit dem sich der Benutzer anmeldet.
  • password: Früher stand an dieser Stelle ein verschlüsseltes Passwort; jetzt finden Sie hier ein x – ein Hinweis, dass das Passwort in einer anderen Datei gespeichert ist (/etc/shadow).
  • UID: Jedem Benutzernamen wird genau eine "User IDentification number" zugeordnet; root hat die 0, alle anderen Zahlen dürfen frei gewählt werden, wobei 1-99 typischerweise für System-Accounts reserviert sind.
  • GID: Die "Group IDentification number", mit der die Zugehörigkeit zu einer Gruppe festgelegt wird; jeder User muss in mindestens einer Gruppe Mitglied sein (siehe auch /etc/shadow).
  • additionalInfo: Eine genauere Beschreibung des Benutzers, die aus mehreren Worten bestehen darf (meistens finden Sie hier den Vor- und Zunamen).
  • home: Das Home-Verzeichnis des Users, meistens /home/username.
  • shell: Das Programm, das als Kommandozeileninterpreter gestartet wird, wenn sich der Benutzer einloggt; meistens steht hier /bin/bash oder ähnliches.

Bevor Sie hier einen neuen User eintragen, sollten Sie überlegen, welche UserID vergeben wird und welcher Gruppe er standardmäßig angehören soll. Die UID muss für jeden Benutzer eindeutig sein, die GID mit einer Gruppe aus /etc/group übereinstimmen. In der Regel wird einfach die Zahl der Gruppe users übernommen (auch wenn es möglich ist, eine neue Gruppe in /etc/group anzulegen):

asteroid:~# less /etc/group
[…]
users:x:100:

Gesetzt den Fall, es soll ein neuer Benutzer namens petronella angelegt und Mitglied in der Gruppe users werden, sieht der Eintrag so aus:

petronella:x:501:100:Testhuhn:/home/petronella/:/bin/bash

Wenn der neue Benutzer auch anderen Gruppen angehören soll, muss seine UID in /etc/group bei den entsprechenden Gruppen hinzugefügt werden, z. B.:

audio:x:29:huhn,easter,petronella

Auf den meisten Systemen werden Shadow-Passwörter verwendet, daher gehört ein zusätzlicher Eintrag in die Datei /etc/shadow. Auch dort gibt es durch Doppelpunkte getrennte Felder:

username:password:age:min_age:max_age:warning:buffer:invalid:other

Die Felder haben folgende Bedeutung:

*

username: Der Benutzername, siehe /etc/passwd.

  • password: Das verschlüsselte Passwort; steht an dieser Stelle ein Sternchen @L: *, gibt es kein gültiges Passwort, mit dem sich der User einloggen könnte; dieses wird häufig für "Verwaltungs-User" eingetragen, wie z. B. daemon, bin oder lp.
  • age: Das Alter des Passwortes; gezählt werden die Tage vom 1. Januar 1970 an (Alter von Unix) bis zum Zeitpunkt der letzten Änderung.
  • min_age: Die Anzahl der Tage bis das Passwort geändert werden darf.
  • max_age: Die Anzahl der Tage bis das Passwort geändert werden muss.
  • warning: Die Anzahl der Tage, an denen ein User gewarnt wird, bevor sein Passwort ausläuft.
  • buffer: Die Anzahl der Tage bis der Account wirklich ungültig wird (als Puffer).
  • invalid: Die Anzahl der Tage (vom 1. Januar 1970 an) bis das Passwort ungültig wird.
  • other: Das letzte Feld ist reserviert.

Die beiden ersten Einträge (username und password) müssen vorhanden sein, die anderen sind optional. Der neue Eintrag für den User "petronella" in der /etc/shadow sieht also so aus:

petronella:!:::::::

Im zweiten Feld, wo im Moment noch als Platzhalter ! steht (aus Sicherheitsgründen bleibt das Feld niemals leer), sollte normalerweise ein encryptetes Passwort sein. Als root führen Sie deshalb nun anschließend das Kommando passwd aus:

asteroid:~# passwd petronella
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Anschließend geben Sie dem neuen Benutzer ein Home-Verzeichnis und kopieren optional einige Startdateien dorthin:

asteroid:~# mkdir /home/petronella
asteroid:~# cp -v /etc/skel/.* /home/petronella
/etc/skel/.alias -> /home/petronella/.alias
/etc/skel/.bash_logout -> /home/petronella/.bash_logout
/etc/skel/.bash_profile -> /home/petronella/.bash_profile
/etc/skel/.bashrc -> /home/petronella/.bashrc
/etc/skel/.cshrc -> /home/petronella/.cshrc

Damit dem neuen Benutzer sein neues Zuhause auch gehört, passen Sie die Rechte in dem Verzeichnis an:

asteroid:~# chown petronella /home/petronella/.*
asteroid:~# chgrp users /home/petronella/.*

Alles automatisch

Mit den Tools useradd, userdel und usermod kommen praktische Kommandozeilenhelfer, die Ihnen die aufwendige Editierarbeit abnehmen. Das Programm useradd legt, wie der Name vermuten lässt, einen neuen Benutzer-Account an. Der einfache Aufruf gibt eine Übersicht über die wichtigsten Parameter:

asteroid:~# useradd
usage: useradd  [-u uid [-o]] [-g group] [-G group,…]
                [-d home] [-s shell] [-c comment] [-m [-k template]]
                [-f inactive] [-e expire ] [-p passwd] name
       useradd  -D [-g group] [-b base] [-s shell]
                [-f inactive] [-e expire ]

Das Programm können Sie auf zwei verschiedene Weisen einsetzen: Entweder geben Sie über einzelne Optionen die neue UID, GID, das neue Home-Verzeichnis, etc. an, oder Sie definieren über den Parameter -D Default-Einstellungen, welche vom Kommando dann abgearbeitet werden. Schauen Sie sich zunächst die Einzelparameter an. Mit -u bestimmen Sie die UID. Sollten Sie aus Versehen eine bereits vergebene Zahl angeben, bricht das Programm mit der Fehlermeldung: useradd: uid 100 is not unique.

Mit der Option -g wird eine primäre GID für den Benutzer vergeben; weitere Gruppen fügen Sie über -G GID2,GID3... durch Kommata getrennt hinzu. Das Home-Verzeichnis geben Sie mit -d /home/username an, die Standard-Shell z. B. mit -s /bin/bash. Damit das Home-Verzeichnis auch angelegt wird, setzen Sie noch die Option -m. Dabei werden standardmäßig auch die Dateien aus /etc/skel ins neue /home kopiert. Der Parameter -c setzt den Namen des Users (was in der /etc/passwd im Feld additionalInfo steht). Soll dieser aus mehreren Wörtern bestehen, muss er in Anführungszeichen übergeben werden. Sollte bereits ein encryptetes Passwort für den Benutzer existieren, darf dieses mit -p crypt_pw gesetzt werden. Der vollständige Aufruf lautet also:

asteroid:~# useradd -u 501 -g 100 -d /home/petronella -m -s /bin/bash -c"Test-User petronella"

Werfen Sie einen Blick in die entsprechenden Konfigurationsdateien und sehen, ob alles richtig gesetzt ist. Die /etc/shadow enthält an der Stelle, wo das Passwort steht, wieder den Platzhalter !. Daher kommt nun wieder das Programm passwd zum Einsatz.

Viel schneller arbeitet useradd mit den Default-Einstellungen. Schauen Sie sich diese mit dem Parameter -D an:

asteroid:~# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

Soll diesem Standard gefolgt werden, reicht ein einfaches useradd petronella aus; auf dem Parameter -m darf aber auch hier nicht verzichtet werden, soll das Home-Verzeichnis tatsächlich angelegt werden. Die Default-Konfiguration lässt sich selbstverständlich ändern; useradd -D -g GID ändert die Standardgruppe, useradd -D -b das Default-Home-Verzeichnis und useradd -D -s die Standard-Shell.

Sollte nach dem Anlegen des neuen Benutzers eine Einstellung nicht korrekt sein und ein bestehender Account modifiziert werden müssen, kommt usermod ins Spiel. Es hat die gleichen Optionen (mit der gleichen Funktionsweise) wie useradd.

Das dritte Programm aus dieser Runde heißt userdel und ist für das Löschen von Benutzer-Accounts zuständig. Einzige Voraussetzung ist, dass der User nicht eingeloggt ist; ebenso müssen Prozesse des Benutzers gelöscht werden, bevor userdel zum Einsatz kommt. Einziger Parameter ist -r; dieser entfernt zusätzlich zum Account auch das Home-Verzeichnis mit allen enthaltenen Dateien.

Auf Debian-Systemen und auf älteren Linux-Distributionen gibt es ein Perl-Script namens adduser. Interaktiv hilft es beim Anlegen eines neuen Benutzers, fragt Schritt für Schritt die neuen Daten ab und fügt dabei die entsprechenden Einträge in die Konfigurationsdateien ein. In der aktuellen Version 3.47 ist es auch bei Debian Woody mit von der Partie. Den Source-Code finden Sie unter http://ftp.debian.org/debian/pool/main/a/adduser/adduser_3.47.tar.gz; Debianer installieren das Werkzeug mit apt-get install adduser.

Glossar

Shadow-Passwörter

erhöhen die Sicherheit auf dem System, indem sie in der Datei /etc/shadow abgelegt werden, die nur vom Benutzer root gelesen werden kann. Zusätzlich bieten sie Informationen darüber, wann ein Passwort das letzte Mal geändert wurde, sowie eine Kontrolle, wann es das nächste Mal geändert werden muss.

passwd

Mit diesem Kommando kann jeder User sein eigenes Passwort (und root darüberhinaus das aller User) ändern. Als "normaler" Benutzer werden Sie nach Eingabe des Befehls zunächst nach dem alten Passwort gefragt bevor Sie ein neues wählen dürfen – ein Schutzmechanismus, der (falls doch einmal eine Konsole unbeaufsichtigt offen gelassen wurde) verhindert, dass andere User sich Zugriffsrechte verschaffen. Der Superuser root darf auch fremde Passwörter ändern. Dazu setzt man hinter den Befehl passwd den Benutzernamen. Hier wird nicht nach dem alten Passwort gefragt. So kann ein Systemverwalter einem User, der sein Passwort vergessen hat, ein neues setzen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Know-how für die Kommandozeile
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt als in grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
  • Benutzerverwaltung
    Linux ist ein Multiuser-System: Mehrere Benutzer nutzen gleichzeitig den selben Rechner, und für verschiedene Aufgaben richtet man separate Accounts ein. Diese Zu-Befehl-Folge stellt die Kommandos für die Zugangsverwaltung vor.
  • Benutzer und Gruppen auf der Befehlszeile verwalten
    Lernen Sie Dateien und Befehle kennen, mit deren Hilfe Sie Benutzer- und Gruppen-Konten hinzufügen, verändern und entfernen.
  • Zu Befehl: sort
    Ordnung ist das halbe Leben, auch auf der Kommandozeile. Mit dem Tool "sort" ordnen Sie Dateilisten und Programmausgaben. Wer will, fügt mit Hilfe dieses kleinen aber feinen Programms sogar mehrere Dateien sortiert zusammen.
  • Zu Befehl: su, sudo
    Sicher ist sicher – selbst wer Root-Rechte auf dem System hat, sollte nur temporär als Administrator arbeiten, um nicht aus Versehen Schaden anzurichten. Mit su und sudo wechseln Sie auf der Kommandozeile schnell die Identität.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...