Konsolen-Tools für die Benutzerverwaltung in LINUX

Warum keine grafischen Tools

Natürlich gibt es auch grafische Tools für die Benutzerverwaltung in Linux. Allerdings ist eine Hauptdomäne für den Einsatz von Linux der Serverbereich. Um Resourcen zu sparen, wird ein Server meistens ohne grafische Benutzeroberfläche ausgeführt (was unter LINUX problemlos möglich ist) oder im Fernzugriff per SSH verwaltet. Hier ist man in jedem Fall auf die Konsolen-Tools angewiesen, die im folgenden behandelt werden.

Anzeigen des aktuellen Nutzers

Mit dem Befehl id kann man sich die wichtigsten Informationen über den aktuellen Nutzer anzeigen lassen. Fügt man als Attribut einen existierenden Nutzernamen hinzu, so erhält man die Informationen über diesen Nutzer.

admin_jw@linux-5ews:~> id

uid=1000(admin_jw) gid=100(users) Gruppen=100(users),480(vboxusers)

Ohne weitere Optionen liefert der Befehl id folgende Informationen:

  • die UID des Users
  • den Namen des Benutzers
  • die primäre GID des Nutzers
  • den Namen der primären Gruppe des Benutzers
  • die GIDs und Namen der Gruppen, denen der Benutzer angehört.

Anzeigen der Gruppenzugehörigkeit

Mit dem Befehl groups kann man sich anzeigen lassen zu welchen Gruppen man gehört. Fügt man als Attribut einen existierenden Nutzernamen hinzu, so erhält man die Informationen über diesen Nutzer.

admin_jw@linux-5ews:~> groups

users vboxusers

Einige Systemfunktionen können nur von Benutzern genutzt werden, die diesen Systemgruppen angehören. Dies kann ein Grund sein, warum bestimmte Systemdienste nicht funktionieren.

Anzeigen eingeloggten User

Mit dem Befehl w kann man sich ausführlich anzeigen lassen wer gerade am System eingeloggt ist. Zusätzlich erhält man noch einige Informationen über das System und dessen Zustand.

admin_jw@linux-5ews:~> w

11:06:03 up 2:32, 2 users, load average: 0,25, 0,24, 0,31

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
admin_jw pts/0 :0 08:48 0.00s 0.05s 0.00s w
admin_jwjw pts/1 :0 10:58 35.00s 0.06s 0.00s less

useradd: Einen Benutzer anlegen

Mit dem Befehl useradd richtet man auf einem LINUX-System einen Benutzer ein, ohne Systemdateien manuell editieren zu müssen. Welche Optionen der useradd Befehl mitbringt hängt von der Distribution ab. Man erfährt sie, indem man useradd alleinstehend in die Shell eingibt.

pi@raspberrypi-jw:~ $ useradd
Aufruf: useradd [Optionen] BENUTZERZUGANG
        useradd -D
        useradd -D [Optionen]

Optionen:
  -b, --base-dir BASIS_VERZ     Basisverzeichnis für das
                                Home-Verzeichnis des neuen Benutzers
  -c, --comment KOMMENTAR       KOMMENTAR für das GECOS-Feld des neuen
                                Benutzers
  -d, --home-dir HOME_VERZ      Home-Verzeichnis des neuen Benutzers
  -D, --defaults                Anzeigen oder Speichern der modifizierten
                                Standardkonfiguration für useradd
  -e, --expiredate ABL_DATUM    Das Ablaufdatum des neuen Benutzerzugangs
  -f, --inactive INAKTIV        Passwort nach Ablauf von INAKTIV deaktivieren
  -g, --gid GRUPPE              Name oder ID der primären Gruppe des neuen
                                Benutzerzugangs
  -G, --groups GRUPPEN          Liste der zusätzlichen Gruppen für den
                                neuen Benutzerzugang
  -h, --help                    Diese Hilfe anzeigen, sonst nichts
  -k, --skel SKEL_VERZ          Ein alternatives skeleton-Verzeichnis
                                (Vorlagenverzeichnis) verwenden
  -K, --key SCHLÜSSEL=WERT      Die Vorgabewerte in /etc/login.defs
                                überschreiben
  -l, --no-log-init             Den Benutzer nicht zu den lastlog- und
                                faillog-Datenbanken hinzufügen
  -m, --create-home             Home-Verzeichnis des neuen Benutzers erstellen
  -M, --no-create-home          Kein Home-Verzeichnis für den Benutzer
                                erstellen
  -N, --no-user-group           Keine Gruppe mit dem gleichen Namen wie dem
                                des Benutzers erstellen                                                           
  -o, --non-unique              Benutzer mit doppelter (nicht einmaliger)                                         
                                UID erlauben                                                                      
  -p, --password PASSWORT       Verschlüsseltes Passwort für den neuen                                            
                                Benutzerzugang                                                                    
  -r, --system                  Eine Systemgruppe erstellen                                                       
  -R, --root CHROOT_VERZ        Verzeichnis für chroot                                                            
  -s, --shell SHELL             Die Login-Shell des neuen Benutzerzugangs
  -u, --uid UID                 Benutzer-ID (UID) des neuen Benutzerzugangs
  -U, --user-group              Eine Gruppe mit dem gleichen Namen wie dem
                                des Benutzers erstellen
  -Z, --selinux-user SEBENUTZER Den Benutzernamen SEBENUTZER für die SELinux-
                                Benutzer-Zuordnung verwenden

Benutzer definieren

Zunächst muss ein Benutzer definiert werden. Dazu sind folgende Überlegungen notwendig:

  • Den Namen für den Benutzer sinnvoll festlegen. Dabei die Namenskonventionen beachten.
  • Die UID festlegen (UID > 1000).
  • Ein Passwort vergeben. (Kann eventuell automatisch per System-Tool erfolgen)
  • Ein Home-Verzeichnis für den User anlegen. (Kann eventuell automatisch per System-Tool erfolgen)
  • Die Gruppenzugehörigkeiten des Benutzers definieren. (Kann eventuell automatisch per System-Tool erfolgen)

Benutzer anlegen

Im untenstehenden Beispiel wird mit useradd der Benutzer mit dem Namen testnutzer angelegt. Die Option -m bewirkt, dass ein Home-Verzeichnis für den neuen Benutzer angelegt wird.

root@192-168-30-211:~# useradd -m testnutzer

Dabei wird von useradd die /etc/passwd Datei wie folgt ergänzt:

loddar:x:1010:1005::/home/loddar:/bin/bash
default:x:1011:1008:default,,,:/home/default:/bin/bash
prze_test:x:1012:1012::/home/prze_test:/bin/bash
testnutzer:x:1013:1013::/home/testnutzer:

Von useradd wurde also der Benutzer testnutzer mit der UID 1013 angelegt, sowie ein entsprechendes Home-Verzeichnis für den neuen Benutzer. Da keine Standard-Shell definiert wurde, ist /etc/sh die Standardshell des neuen Benutzers.

Die Datei /etc/shadow wird ergänzt durch:

prze_test:$6$6w(gekürzt)APHd.:17135:0:99999:7:::
testnutzer:!:17484:0:99999:7:::

Das Ausrufezeichen hinter testnutzer zeigt an, dass das Passwort noch nicht vergeben wurde.

Die Option -m bewirkt, dass ein Home-Verzeichnis angelegt wird.

root@192-168-30-211:/home# ls
testnutzer

Die Default Einstellungen von useradd

Der Befehl useradd besitzt eine Reihe von Default-Einstellungen, die standardmäßig festlegen, wie ein neuer Benutzer angelegt wird und welche Optionen beim Anlegen des neuen Benutzers zusätzlich ausgeführt werden. Diese Optionen kann man sich mit der Option

useradd -D

anzeigen lassen.

linux-ep40:/home/jw # useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Die Standard-Optionen können mit

useradd -D -[Option]

modifiziert werden. Beispielsweise kann man durch die Wahl verschiedener Skeleton-Verzeichnisse unterschiedliche Standard-Nutzertypen festlegen.

Die Standard-Optionen findet man in der Datei /etc/default/useradd. Diese Datei kann natürlich auch per Hand mit Root-Rechten verändert werden.

Passwort vergeben mit passwd

Nachdem man einen neuen Benutzer mit useradd eingerichtet hat, muss man diesem mit dem Befehl passwd ein Passwort zuweisen. Distributionsabhängig kann dies auch mit der Option -p direkt mit useradd erfolgen.

Die Syntax von passwd lautet:

passwd -[Option] [Benutzer]

Gibt man den Befehl passwd alleinstehend in der Shell ein, so wird das Passwort des aktuell eingeloggten Benutzers geändert.

root@192-168-30-211:/home# passwd testuser
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Ein Blick in die /etc/shadow zeigt, dass dem neuen Benutzer nun ein Passwort zugewiesen wurde.

prze_test:$6$6w(gekürzt)APHd.:17135:0:99999:7:::
testnutzer:X6EOL(gekürzt)gJGb0.:17484:0:99999:7:::

Eigenschaften eines Users verändern mit usermod

Mit dem Befehl usermod können Eigenschaften eines Benutzers geändert werden. Dies kann aber auch durch das Editieren der zentralen Konfigurationsdateien geschehen.

usermod -[Option] [Benutzer]

Besonderheiten von usermod

Der usermod Befehl hat einige Besonderheiten, die zu beachten sind.

Der aktuell eingeloggte Benutzer kann mit usermod nicht bearbeitet werden.

Beim Benutzen der Gruppenoption -G wird der Nutzer den entsprechenden Gruppen zugefügt. Die Gruppenliste wird der Option angeängt (mit einem Leerzeichen getrennt). Die Gruppenliste besteht aus den Gruppennamen (kleingeschrieben) mit Kommata (ohne Leerzeichen dazwischen) getrennt.
Dabei ist zu beachten, dass der Benutzer aus allen Gruppen, die nicht in dieser Gruppenliste enthalten sind entfernt wird. Mit dieser Aktion kann man sich schnell aus der admin Gruppe entfernen und beraubt sich so der Möglichkeit mit root-Rechten zu arbeiten.