Benutzer- und Gruppen-Verwaltung unter Linux

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:

  1. Gruppenname
  2. verschlüsseltes Passwort oder Verweis nach /etc/gshadow
  3. Gruppen-ID (GID)
  4. 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:

  1. Name der Gruppe
  2. Gruppenpasswort, wenn verwendet
  3. Gruppenverwalter – Darf Benutzer zur Gruppe hinzufügen oder entfernen. Kann das Gruppenpasswort ändern.
  4. 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

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..