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_jw | jw 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.