Zum Inhalt springen

Benutzerverwaltung UNIX

Benutzer anlegen, ändern oder löschen

Benutzer anlegen:

useradd --home-dir HOMEDIR --create-home --uid USERID --gid INITIALGROUP --groups ADDITIONALGROUPS --shell /bin/bash LOGINNAME

Beispiel:

useradd --home-dir /home/klaus --create-home --uid 107 --gid users --groups sudo --shell /bin/bash klaus

Durch diesen Befehl wird ein Benutzer mit dem Loginnamen „klaus“ angelegt, auch sein HOME-Verzeichnis. Der neue Benutzer ist in den Gruppen „users“ und „sudo“, was ihm die Möglichkeit eröffnet root-Rechte zu erlangen.

Der Name der Gruppe die zur Erlangung der root-Rechte führt kann ggf. auf ihrem System abweichen.

Hat es funktioniert?
Den Erfolg ihres Befehls erfahren sie mit dem Kommando:

root@debian:~# id klaus
uid=107(klaus) gid=100(users) groups=100(users),27(sudo)
root@debian:~# ls -la ~klaus
total 20
drwxr-xr-x 2 klaus users 4096 Jul  5 19:54 .
drwxr-xr-x 3 root  root  4096 Jul  5 19:54 ..
-rw-r--r-- 1 klaus users  220 Mar 27  2022 .bash_logout
-rw-r--r-- 1 klaus users 3526 Mar 27  2022 .bashrc
-rw-r--r-- 1 klaus users  807 Mar 27  2022 .profile
root@debian:~#

Wie erfahre ich welche Gruppen es gibt?
Die auf ihrem System verfügbaren Gruppen und deren ID finden sie in der Datei /etc/group

Wie setze ich das Passwort für den neuen Benutzer?
Solange der Benutzer kein Passwort hat funktioniert auch sein Loginprozess nicht.

#Der Benutzer root kann für jeden anderen Benutzer Kennwortänderungen durchführen ohne das aktuell gültige Kennwort zu kennen. Hierzu muss als Option der Benutzername angegeben werden dessen Kennwort geändert werden soll.

root@debian:~# passwd klaus
New password: 
Retype new password: 
passwd: password updated successfully
root@debian:~#

#Der Benutzer kann jederzeit sein Kennwort ändern durch den Befehl "passwd" ohne jegliche Option, muss aber das aktuelle Kennwort kennen.

Wie setze ich den Klartext-Namen des Benutzer? oder ändere seine Login-Shell ?

Einige Einstellungen des Benutzers werden in der Datei /etc/passwd gespeichert.
Dies ist eine gewöhnliche Textdatei und kann mit einem Texteditor geändert werden.
Das sollte jedoch nur von einem Menschen durchgeführt werden, der sich des Risikos bewusst ist.
Eine korrupte Datei /etc/passwd kann das System ruinieren.
Das Risiko kann gemindert werden, wenn man über einen 2. Terminal nochmal eingeloggt ist.

Die Einstellungen eines Benutzers sind in einer einzigen Zeile gespeichert:

klaus:x:107:100::/home/klaus:/bin/bash

Die Datenfelder sind durch „:“ getrennt, ändern sie nicht die Anzahl der „:“ Zeichen.
Die Felder haben folgende Bedeutung in dieser Reihenfolge:

Benutzername: klaus
Verschlüsseltes Kennwort in der Datei /etc/shadow
User-ID: 107
Group-ID: 100
Kommentarfeld oder Name des Benutzers: Im Normalfall leer
Home-Verzeichnis: /home/klaus
Login-Shell: /bin/bash

Wenn der Loginzugriff unterbunden werden soll kann als Login-Shell angegeben werden: /bin/false oder /usr/sbin/nologin

Benutzer löschen

userdel -r LOGINNAME

Löscht den Benutzer komplett incl. seines Home-Verzeichnisses und ggf. anstehender Druckaufträge