Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Benutzerverwaltung / Die Benutzerverwaltung unter UNIX/Linux

Die Benutzerverwaltung unter UNIX/Linux

Kategorie: BenutzerverwaltungErstellt: 02.10.2007 - 23:58 
Autor: Stefan Abu Salah
0

Die Benutzerverwaltung unter UNIX/Linux

Zu jedem Benutzer eines UNIX/Linux-Systems gibt es genau einen Eintrag in der Datei /etc/passwd. Dieser Eintrag enthält alle für das Einloggen am System benötigten Angaben (siehe Tabelle).

Beispiel: Auszug /etc/passwd
...
user04:x:1004:1004:UNIX-Praktikumsaccount:/home/user04:/bin/bash
...

Erklärung der Felder der /etc/passwd

Benutzername Benutzername des Users, besteht meist aus Kleinbuchstaben, wird für das Login am System benötigt
Passwort Früher wurde dieses Feld für das verschlüsselte Passwort genutzt. Da die Datei /etc/passwd jedoch aus vielerlei Gründen von jedem lesbar sein muss wurde u.a. für dieses Feld die Datei /etc/shadow eingeführt. Heute steht hier nur ein "x"
User ID Eindeutige Benutzer-ID
Gruppen ID Standard Gruppenzugehörigkeit des Users, kann bei unterschiedlichen Benutzern gleich sein, ist sie jedoch selten, damit die Benutzer wirklich voneinander getrennt sind.
Infofeld Hier können genauere Informationen zur Person abgelegt werden. (Z.B. der reale Name)
Homeverzeichnis Speicherort des Homeverzeichnisses dieses Users
Login-Shell Standard-Shell des Benutzers, wird als Login-Shell verwendet

Die Shaddowsuite
Wie bereits oben erwähnt wurde, ist vor einigen Jahren das verschlüsselte Passwort der Benutzer aus der Datei /etc/passwd verbannt worden. Dies wurde nötig, da Rechner immer schneller wurden, und somit jeder am System angemeldete Benutzer die Möglichkeit die Passwörter aus den Hashwerten anderer Benutzeraccounts zu errechnen. Die Datei /etc/passwd muss aus vielerlei Gründen für alle lesbar sein, womit ein Auslesen der verschlüsselten Passwörter aus dieser Datei leicht möglich ist. Um diesen Umstand zu beseitigen wurden die verschlüsselten Passwörter in die Datei /etc/shadow verbannt. Diese Datei ist ausschließlich vom Benutzer root les und schreibbar und von der Gruppe shaddow lesbar. Somit ist ein Auslesen des Passworthashs normalen Benutzern des Systems nicht mehr möglich.

Beispiel: Auszug /etc/shaddow
...
user04:$1$lS4h87ZZ$WZrqwpX6GAHVeGV9GH5S1.:13469:0:99999:7:::
...

Erklärung der Felder der /etc/shaddow

Benutzername Benutzername muss mit der in /etc/passwd übereinstimmen
Verschlüsseltes Passwort Verschlüsseltes Passwort dieses Benutzers
Letzte Passwortänderung Anzahl der Tage seit dem 1.1.1970 seitdem das Kennwort nicht mehr geändert wurde
Minimale Gültigkeitsdauer Anzahl der Tage die ein Passwort mindestens gültig ist. Bevor dieser Zeitraum nicht vorüber ist, darf das Passwort nicht geändert werden
Maximale Gültigkeitsdauer Anzahl der Tage die ein Passwort maximal gültig ist. Der Benutzer muss vor ablauf dieser Frist sein Passwort ändern
Vorwarnzeit In der hier definierten Zeit in Tagen wird dem Benutzer eine Warnmeldung nach jedem Login angezeigt, dass er sein Passwort ändern muss
Inaktivität Anzahl der Tage nachdem ein Account gesperrt wird wenn ein Passwort abgelaufen ist
Accountende Anzahl der Tage die der Account maximal gültig ist (wieder in Tagen seit dem 1.1.1970)
Kennzeichen Wird derzeit nicht benutzt, und sollte auch nicht benutzt werden

Neue Benutzer anlegen
Um einen neuen Benutzer im System einzurichten gibt es zwei Möglichkeiten. Die Programme useradd und adduser. Mit useradd lässt sich komplett in einem Befehl ein neuer Benutzer einrichten. Alle hierfür benötigten Angaben erfolgen per Parameterübergabe. Dies ist zwar nicht gerade intuitiv, bietet jedoch die Möglichkeit der Skript gesteuerten Benutzerverwaltung. adduser ist ein frontend für useradd. Das bedeutet, dass adduser eine Benutzerführung bietet, die Eingaben zusammenfasst und diese Daten an useradd übergibt. adduser kann außerdem mittels der Konfigurationsdatei /etc/adduser.conf weitgehend konfiguriert werden.

Beispiel: adduser
root@troubadix:/# adduser
Enter a username to add: hansi
Adding user hansi...
Adding new group hansi (1001).
Adding new user hansi (1001) with group hansi.
Creating home directory /home/hansi.
Copying files from /etc/skel
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for hansi
Enter the new value, or press return for the default
Full Name []: Hansi Maier
Room Number []: 123
Work Phone []: 022108154711
Home Phone []:
Other []:
Is the information correct? [y/n] y

/etc/skel
adduser kopiert alle unter /etc/skel gespeicherten Daten in das neu angelegte Benutzerverzeichnis. Somit ist es möglich genau zu spezifizieren, welche Daten dem Benutzer voreingestellt sein sollen. So kann beispielsweise das .kde-Verzeichnis, welche alle Einstellungen einer KDE-Sitzung enthält automatisch auf alle neu angelegten Benutzerkonten übertragen werden. Jeder neue Benutzer hätte dann genau diese Einstellungen (Hintergrundbild, Fensterlayout, Tastaturbelegung, etc.).

Benutzerdaten ändern
Natürlich muss eine Änderung der Benutzerdaten zu einem späteren Zeitpunkt möglich sein. Beispielsweise muss ein Benutzer in der Lage sein sein Passwort zu ändern, und ein Administrator muss die Möglichkeit haben Benutzer zu sperren u.v.m..
Mit dem Programm passwd können Benutzer ihr Passwort ändern. Natürlich kann auch root hiermit Passwörter anderer Benutzer ändern.
usermod ist eine Alternative zum von Hand editieren der Datei /etc/passwd. Außerdem lässt es sich einfach mit Skripen steuern. Mit usermod lassen sich alle Einträge der Datei /etc/passwd von jedem Benutzer ändern.

Es ist möglich sichere Passwörter zu erzwingen, indem man beispielsweise Wortlisten und/oder Mindestpasswortlängen nutzt.

Optionen: usermod [options] loginname (Auszug)

--home HOME_DIR Setzt ein neue Homeverzeichnis
--expiredate EXPIRE_DATE Setzt das Ablaufdatum des Accounts
--inactive INACTIVE Setzt die Zeitspann nach dem der Account gesperrt werden soll, wenn er abgelaufen ist
--gid GROUP Setzt die initiale GruppenID
--groups GROUPS Setzt die Gruppenzugehörigkeit (Gruppen sind als Liste anzugeben)
--lock --unlock Sperren bzw. Entsperren des Accounts
--shell SHELL Setzt die login-Shell

Beispiel: usermod
root@troubadix:/# cat /etc/passwd | grep hansi
hansi:x:1001:1001:Hansi Maier,123,022108154711,:/home/hansi:/bin/bash

root@troubadix:/# usermod --shell /bin/false hansi
root@troubadix:/# cat /etc/passwd | grep hansi
hansi:x:1001:1001:Hansi Maier,123,022108154711,:/home/hansi:/bin/false

Benutzer löschen
Mit deluser lassen sich bestehende Benutzerkonten wieder löschen. Hierzu bietet deluser einige Parameter, welche den Löschvorgang konfigurierbar machn. Beispielsweise kann man eine Sicherungskopie aller Dateien des Benutzers anlegen lassen. Gibt man deluser als einzigen Parameter den zu löschenden Benutzernamen an, so werden nur die entsprechenden Einträge in den Dateien /etc/shadow und /etc/passwd gelöscht, alle Dateien und Ordner des Benutzers bleiben erhalten.

Beispiel: Problem mit UserID <- Inodes -> Benutzername
root@troubadix:/var/www# ls -l
-rw-r--r-- 1 stefan stefan 3154 Nov 23 15:15 index.htm
...

root@troubadix:/var/www# deluser stefan
root@troubadix:/var/www# ls -l
-rw-r--r-- 1 1001 1001 3154 Nov 23 15:15 index.htm
...

Benutzernamen dürfen nicht mit einer Zahl beginnen, da dies zu Verwechelungen bei Dateien (UID/GID) bereits gelöschter Benutzer führen kann (stellen Sie sich vor es gäbe einen Benutzer mit dem Namen 1001 und sehen Sie sich dann das Beispiel Problem mit Inodes)

Optionen: deluser

--remove-home Entferne das Homeverzeichnis des Benutzers
--remove-all-files Entferne alle Dateien des Benutzers, also auch Dateien ausserhalb seines Homeverzeichnisses (z.B. Dateien unter /var/mail)
--backup Erstellt eine Backupdatei der zu löschenden Dateien. Diese Backupdatei wird gepackt im aktuellen Arbeitsverzeichnis abgelegt

Beispiel: Löschen eines Benutzers, Backup seiner Daten, löschen seiner Daten
root@troubadix:/root# deluser --remove-all-files --backup stefan
Suche Dateien zum Sichern/Löschen...
Sichere Daten...
Lösche Dateien...
Entferne Benutzer stefan...
Fertig.
root@troubadix:/root# ls
stefan.tar.bz2



Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Benutzerverwaltung / Die Benutzerverwaltung unter UNIX/Linux
simplum