Benutzer-Verwaltung
Hinweis: NOCH IN BEARBEITUNG
Die Benutzerverwaltung gehört zu den wichtigen Arbeiten an einem Linux-System (vor allem auf einem Linux-Server). Dies ist auch der Grund für die hohe Gewichtung des Themas an der LPIC-Prüfung. Hier ist es entsprechend sinnvoll, sich mit dem Thema vertieft vertraut zu machen. Ich habe hier versucht die wichtigsten Informationen zusammen zu tragen.
useradd
-m Home-Verzeichniss erstellen (Kopie von /etc/skel)
-N keine private Gruppe (Gruppenname=Benutzername)
-g Hauptgruppe (z.B. users – Nur eine Hauptgruppe möglich)
-G Zusätzliche Gruppen (z.B. sudo – Mehrere Gruppen möglich)
/etc/default/useradd
Die Voreinstellungen von useradd sind in der Datei /etc/default/useradd gespeichert. Auf einem Ubnuntu-System sieht diese Datei so aus:
blogger@X201:~$ cat /etc/default/useradd # Default values for useradd(8) # # The SHELL variable specifies the default login shell on your # system. # Similar to DHSELL in adduser. However, we use "sh" here because # useradd is a low level utility and should be as general # as possible SHELL=/bin/sh # # The default group for users # 100=users on Debian systems # Same as USERS_GID in adduser # This argument is used when the -n flag is specified. # The default behavior (when -n and -g are not specified) is to create a # primary user group with the same name as the user being added to the # system. # GROUP=100 # # The default home directory. Same as DHOME for adduser # HOME=/home # # The number of days after a password expires until the account # is permanently disabled # INACTIVE=-1 # # The default expire date # EXPIRE= # # The SKEL variable specifies the directory containing "skeletal" user # files; in other words, files such as a sample .profile that will be # copied to the new user's home directory when it is created. # SKEL=/etc/skel # # Defines whether the mail spool should be created while # creating the account # CREATE_MAIL_SPOOL=yes
Die Datei /etc/passwd
Benutzername : Passwort : UID : GID : Info : Heimatverzeichnis : Shell |
Benutzername | Dies ist der Benutzername in druckbare Zeichen, meistens in Kleinbuchstaben. Ein Benutzername darf nur einmal vorkommen. |
Passwort | Hier steht verschlüsselt das Passwort des Benutzers (bei alten Systemen). Meist finden Sie dort ein x. Dies bedeutet, dass das Passwort verschlüsselt in der Datei /etc/shadow steht. Es ist auch möglich, den Eintrag leer zu lassen. Dann erfolgt die Anmeldung ohne Passwortabfrage (in der Datei /etc/shadow muss dann an Stelle des verschlüsselten Passwortes ein * stehen). |
UID | Die Benutzer-ID des Benutzers. Die Zahl hier sollte grösser als 100 sein, weil die Zahlen unter 100 für Systembenutzer vorgesehen sind. Weiterhin muss die Zahl aus technischen Gründen kleiner als 64000 sein. |
GID | Die Gruppen-ID des Benutzers. Auch hier muss die Zahl wie bei der UID kleiner als 64000 sein. |
Info | Hier kann weitere Information vermerkt werden, wie z.B. der vollständige Name des Benutzers und persönliche Angaben (Telefonnummer, Abteilung, Gruppenzugehörigkeit u.ä.). |
Heimatverzeichnis | Das Heimatverzeichnis des Benutzers bzw. das Startverzeichnis nach dem Login. |
Shell | Die Shell, die nach der Anmeldung gestartet werden soll. Bleibt dieses Feld frei, dann wird die Standardshell /bin/sh gestartet. Mit den Einträgen /bin/false oder /bin/nologin wird ein Login für diesen Benutzer generell verweigert. |
Auszug aus meiner /etc/passwd
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
Die Datei /etc/shadow
Benutzername : Passwort : DOC : MinD : MaxD : Warn : Exp : Dis : Res |
Benutzername | Dies ist der Benutzername in druckbaren Zeichen, meistens in Kleinbuchstaben. |
Passwort | Hier steht verschlüsselt das Passwort des Benutzers. Wenn hier ein * oder ! steht, dann bedeutet dies, dass kein Passwort vorhanden bzw. eingetragen ist. |
DOC | Day of last change: der Tag, an dem das Passwort zuletzt geändert wurde. Besonderheit hier: Der Tag wird als Integer-Zahl in Tagen seit dem 1.1.1970 angegeben. |
MinD | Minimale Anzahl der Tage, die das Passwort gültig ist. |
MaxD | Maximale Anzahl der Tage, die das Passwort gültig ist. |
Warn | Die Anzahl der Tage vor Ablauf der Lebensdauer, ab der vor dem Verfall des Passwortes zu warnen ist. |
Exp | Hier wird festgelegt, wie viele Tage das Passwort trotz Ablauf der MaxD noch gültig ist. |
Dis | Bis zu diesem Tag (auch hier wird ab dem 1.1.1970 gezählt) ist das Benutzerkonto gesperrt |
Res | Reserve, dieses Feld hat momentan keine Bedeutung. |
Auszug aus meiner /etc/shadow
root:!:16486:0:99999:7::: daemon:*:16273:0:99999:7::: bin:*:16273:0:99999:7::: sys:*:16273:0:99999:7::: sync:*:16273:0:99999:7::: games:*:16273:0:99999:7::: man:*:16273:0:99999:7::: lp:*:16273:0:99999:7::: proxy:*:16273:0:99999:7::: www-data:*:16273:0:99999:7::: backup:*:16273:0:99999:7::: list:*:16273:0:99999:7::: irc:*:16273:0:99999:7::: gnats:*:16273:0:99999:7::: nobody:*:16273:0:99999:7::: libuuid:!:16273:0:99999:7::: syslog:*:16273:0:99999:7::: messagebus:*:16273:0:99999:7::: usbmux:*:16273:0:99999:7::: blogger:$6$Heph37Vi$W6WU.A34kX4kPiX/eOVqA5pHKkbaxMe8/lV22noxRyVBbgm6986KTR60zvphrLfXc3dvMbfEJSBUf.Eh8R50X0:16486:0:99999:7:::
Angaben zum Benutzer „user3“ anzeigen
Der Befehl „id“ gibt die Informationen des aktuell aktiven Benutzers aus:
id uid=0(root) gid=0(root) Gruppen=0(root)
Um (als root) die Informationen eines anderen Benutzers zu sehen, verwendet man „id“, gefolgt vom gewünschten Benutzernamen:
id user3 uid=1001(user3) gid=100(users) Gruppen=100(users),27(sudo)
Eine weitere Möglichkeit an Informationen zu kommen, ist über die Datei /etc/passwd:
grep user3 /etc/passwd user3:x:1001:100::/home/user3:/bin/sh
Wir filtern also die Zeilen aus „/etc/passwd“ heraus, in denen „user3“ vorkommt, und lassen uns diese anzeigen.
Wer ist alles in der Gruppe „sudo“?
Der Befehl
grep sudo /etc/group sudo:x:27:user1,user3
liest die Zeile mit dem Wort „sudo“ aus und zeigt diese an. Hier sind alle Benutzer gelistet, die Mitglied der Gruppe „sudo“ sind. In diesem Fall sind es „user1“ und user3, die in der Gruppe „sudo“ sind. Die Spalte mit „x“ zeigt an, dass das Gruppenpasswort in der shadow-Datei liegt und die folgende Spalte mit „27“ enthält die Group-ID (nummerischer Wert der Gruppe).
userdel
Beispiel: Löschen mehrerer Benuzter
for u in user1 user2 user3 ; do userdel -r $u done <ENTER>
usermod
Dateien
/etc/group Informationen zu den Gruppenkonten
/etc/gshadow sichere Informationen zu den Gruppenkonten
/etc/login.defs Konfiguration der Shadow-Passwort-Werkzeugsammlung
/etc/passwd Informationen zu den Benutzerkonten
/etc/shadow verschlüsselte Informationen zu den Benutzerkonten
Benutzer „blogger“ sperren (lock) – auch mit passwd möglich:
usermod -L blogger
In der /etc/shadow Datei wird vor dem Passwort ein „!“ gesetzt:
blogger:!$6$A7qHVWgN$7c37BXy6j4JWux3IVF7OTVeccMVlD2izvDepV5dUQYXjxW1chLAecx06RtArKvM06ctoQGU0xfxKXtTUS/Q8L/:16607:0:99999:7:::
Benutzer „blogger“ entsperren (unlock) – auch mit passwd möglich:
usermod -U blogger
Das „!“ am Anfang des Password-Hashes ist wieder verschwunden:
blogger:$6$A7qHVWgN$7c37BXy6j4JWux3IVF7OTVeccMVlD2izvDepV5dUQYXjxW1chLAecx06RtArKvM06ctoQGU0xfxKXtTUS/Q8L/:16607:0:99999:7:::
passwd
Benutzer „user3“ sperren (lock) – auch mit usermod möglich:
passwd -l user3
Benutzer „user3“ entsperren (unlock) – auch mit usermod möglich:
passwd -u user3
chage
(Change Age)
Alle Informationen für „user3“ anzeigen:
chage -l user3
chfn
Das Programm chfn (Change Full Name) wird für die Verwaltung der fünfte Spalte in /etc/passwd verwendet. Diese wird als GECOS-Feld bezeichnet und enthält nach ursprünglicher Definition folgende Informationen:
- vollständiger Name
- Büronummer und Gebäude
- Telefon Büro
- Telefon Privat
chfn im Einsatz:
sudo chfn blogger Benutzerinformationen für blogger werden geändert. Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert Vollständiger Name []: Hans Blogger Zimmernummer []: 109 Telefon geschäftlich []: 031 555 66 88 Telefon privat []: 031 111 22 44 Sonstiges []: User für's Blog chfn: »User für's Blog« enthält Zeichen, die nicht zum ASCII-Zeichensatz gehören.
Wie man hier sehen kann, sind Sonderzeichen (auch Umlaute) nicht erlaubt. Bei einem weiteren Versuch werden die zuvor angegebenen Werte als Default vorgeschlagen. Nur wenn Änderungen geschrieben werden, übernimmt chfn die neuen Werte.
sudo chfn blogger Benutzerinformationen für blogger werden geändert. Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert Vollständiger Name [Hans Blogger]: Zimmernummer [109]: Telefon geschäftlich [031 555 66 88]: Telefon privat [031 111 22 44]: Sonstiges [User für's Blog]: User fuers Blog
Nun wurde unter „Sonstiges“ auf Sonderzeichen verzichtet. Entsprechend ich chfn nun zufrieden und aktuallisiert die Daten in der /etc/passwd.
Der Eintrag in der passwd Datei sieht so aus:
blogger:x:1001:1002:Hans Blogger,109,031 555 66 88,031 111 22 44,User fuers Blog:/home/blogger:
Eine Abfrage mit Finger zeigt folgende Informationen an:
blog@X201:~$ finger blogger Login: blogger Name: Hans Blogger Directory: /home/blogger Shell: /bin/sh Office: 109, 031 555 66 88 Home Phone: 031 111 22 44 Never logged in. No mail. No Plan.
Die Daten können also mit dem Programm „Finger“ jederzeit und von allen Benutzern auf dem System abgefragt werden.
Benutzer und Gruppen
/etc/group
blogger@X201:~$ cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,blogger tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20: fax:x:21: voice:x:22: cdrom:x:24:blogger ... GEKÜRZT ...
Verwendete Felder:
- Gruppenname
- verschlüsseltes Passwort oder Verweis nach /etc/gshadow
- Gruppen-ID (GID)
- Liste der Gruppenmitglieder, mit Komma getrennt
/etc/gshadow
blogger@X201:~$ sudo cat /etc/gshadow [sudo] password for blogger: root:*:: daemon:*:: bin:*:: sys:*:: adm:*::syslog,blogger tty:*:: disk:*:: lp:*:: mail:*:: ... GEKÜRZT ...
Verwendete Felder:
- Name der Gruppe
- Gruppenpasswort, wenn verwendet
- Gruppenverwalter – Darf Benutzer zur Gruppe hinzufügen oder entfernen. Kann das Gruppenpasswort ändern.
- Mitglieder der Gruppe – sie werden wie in der /etc/group durch Kommata getrennt.
Benutzer einer Gruppe hinzufügen
gpasswd -a BENUTZERNAME GRUPPE
Benutzer aus einer Gruppe entfernen
deluser BENUTZERNAME GRUPPE
Guter Überblick über die wichtigsten Befehle: http://wiki.ubuntuusers.de/Benutzer_und_Gruppen