Inhaltsverzeichnis

Benutzer und Gruppen


Bei der Benutzerverwaltung wird geregelt, wer auf welche Dateien/Verzeichnisse zugreifen, wer welche Programme ausführen und wer auf Hardwarekomponenten zugreifen darf. Unter Linux werden mehrere Benutzer neben den eigentlichen Benutzern eingerichtet um Aufgaben zu verteilen. Viele Systemdienste haben ihre eigenen Benutzer. Erstellt ein Benutzer eine Datei ist die Datei immer Eigentum des Benutzers und der Gruppe zugeordnet die der Hauptgruppe des Benutzers entspricht.

Bei der Zuordnung von Benutzer und Gruppen gibt es jedoch Distributonsabweichungen. So wird z.B. bei Debian ein neu erstellter Nutzer „hans“ auch der Gruppe „hans“ zugewiesen. Bei anderen Distributionen könnte dies bei Nutzer „hans“ die Gruppe „user“ sein.

Alle Benutzer und Gruppenidentitäten werden als Zahlen „UID“ (userID) und „GID“ (gruppenID) im Prozesskontrollblock hinterlegt. Der user mit der UID 0: ist meist der Administator (root).

Diese IDs unterscheiden sich noch in:




Unter Unix, Linux Systemen gibt es folgende drei Typen von Benutzer:






Alle Benutzer werden in der Datei /etc/passwd mit Loginname, Name, UID, GID, Homeverzeichnis und Shell gespeichert.


Gruppen haben die Aufgabe, verschiedenen Benutzern einen gemeinsamen Zugriff auf Dateien zu ermöglichen. Dabei wird jeder Benutzer einer bestimmten Gruppe zugeordnet. Ein Benutzer kann beliebig vielen Gruppen zugeordnet sein. Alle Gruppen werden in der Datei /etc/group gespeichert. Bei der Zuordnung von Benutzern und Gruppen gibt es unterschiedliche Ansätze. Bei SuSE wird ein neuer Benutzer Standardmäßig der Gruppe „users“ zugeordnet. Bei Debian und Red Hat bekommt der Benutzer seine eigene primäre Gruppe die dem Nutzernamen entspricht.



Konfigurationsdateien






Informationen über Benutzer


Informationen und Konfigurationsdateien über Benutzer und Gruppenzugehörigkeiten.


id


Reale und effektive Benutzer- und Gruppen-IDs ausgeben.


Syntax:



Optionen:



Beispiel:

rudi@home:~$ id
uid=1000(rudi) gid=1000(rudi) Gruppen=1000(rudi),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),112(fuse),115(scanner)
rudi@home:~$ id -G
1000 24 25 29 30 44 46 108 109 112 115




passwd


Mit „passwd“ lassen sich Passwörter von Benutzer und/oder Gruppen verändern. Benutzer und Gruppenangehörige dürfen nur ihr eigenes Passwort, „root“ hingegen alles bearbeiten. Wenn „passwd“ ohne Nutzernamen und Optionen eingesetzt wird, kann das Passwort des angemeldeten Nutzers geändert werden.


Syntax:



Optionen:




Beispiel:

hans@home:~$ passwd hans
Geben Sie ein neues UNIX-Passwort ein: 
Geben Sie das neue UNIX-Passwort erneut ein: 
passwd: Passwort erfolgreich geändert


hans@home:~$ passwd -S hans
hans P 06/25/2012 0 99999 7 -1




/etc/passwd


Die Datei „/etc/passwd“ listet alle Metadaten der Nutzer, deren Gruppenzugehörigkeit und Shell auf. Da diese Datei von jedem lesbar sein muß, wird das Passwort in der Datei „/etc/shadow“, die nur von „root“ und/oder der Gruppe „shadow“ lesbar sein muß.

less /etc/passwd
.....
root:x:0:0:tf,,,:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
.....
hans:x:1000:1000:Hans,,,:/home/hans:/bin/bash
.....





/etc/group


Konfigurationsdatei für Benutzergruppen.

less /etc/group
.....
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
bettina:x:502:
verkauf:x:503:bettina
.....





groups


Der Befehl „groups“ gibt die Gruppenzugehörigkeit der Nutzer aus. Dabei kann der Administrator „root“ mit „groups [Nutzername]“ alle Gruppenzugehörigkeiten der registrierten Nutzer einsehen, der angemeldete Nutzer selbst, nur seine eigenen Gruppenzugehörigkeiten.

hans@home:~$ groups
hans cdrom floppy audio video plugdev scanner




/etc/shadow


In der Datei „/etc/shadow“, dass nur von „root“ lesbar ist, wird der Nutzername, das verschlüsselte Passwort und weitere Felder zur Gültigkeit gespeichert.

...
hans:$3$jX6784T$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXKA1jWfli0:XXX23:0:XXX90:5:::
bettina:$1$F7vuc.lg$bhr1g/GOb94zCQyUhHDhy.:15659:7:92:7:14:15916:
daemon:*:XXX23:0:XXX90:5:::
bin:*:XXX23:0:XXX90:5:::
sys:*:XXX23:0:XXX90:5:::
...





/etc/login.defs


In der Datei „/etc/login.defs“ befinden sich Möglichkeiten zur Administration von Passwörter und Logins. Hier kann man z.B. einstellen wie lange die Wartezeit nach einem gescheiterten Loginversuch ist und wieviele Loginversuche gestattet sind. Je nach Einstellung dieser Datei wird bei jedem fehlerhaften Login eine Meldung in „/var/log/faillog“ im Binärformat gespeichert.


faillog


Die Datei „/var/log/faillog“ protokolliert, sofern in der Datei „/etc/login.defs“ eingestellt die fehlerhaften Login Versuche.


Syntax:



Optionen:



hans@home:~$ faillog -a
Login       Fehlver. Maximum Letzter                  Auf

root            0        0   01/01/70 01:00:00 +0100  
daemon          0        0   01/01/70 01:00:00 +0100  
bin             0        0   01/01/70 01:00:00 +0100  
sys             0        0   01/01/70 01:00:00 +0100
....

Zeigt fehlerhafte Loginversuche aller Benutzer.


Beispiele:

faillog -u hans -m 5

Für User hans werden 5 fehlerhafte Loginversuche gestattet, danach wird der Login blockiert und kann danach nur von „root“ freigeschalten werden.


faillog -u hans -r

Der Loginzähler wurde zurückgesetzt, der Benutzer „hans“ kann sich wieder einloggen.

Durch „faillog -m 5“ kann mann die Anzahl der Loginversuche global festlegen. Dann sollte „root“ „faillog -u root -m 0“ ausführen, ansonsten kann es passieren, dass sich „root“ nicht mehr Anmelden kann, wenn ein anderer Benutzer sich 5x vergeblich als „root“ anmelden wollte.




gpasswd


Mit dem Kommando „gpasswd“ kann ein Gruppenpasswort vergeben werden, dieses wird in /etc/gshadow gespeichert. Ein Gruppenpasswort ist nötig, sollte ein Benutzer mit dem Kommando newgrp die aktive Gruppe wechseln, da die aktive Gruppe festlegt, welcher Gruppe neue Dateien angehören.



Verwaltung des Shadowsystems


pwconv


Dieses Programm erstellt oder aktualisiert die Datei „/etc/shadow“, dabei sucht „pwconv“ in der Datei „/etc/passwd“ nach Passwörter und verschiebt diese nach „/etc/shadow“, sollte dies nicht schon geschehen sein (x im Passwortfeld der passwd). Optionen sind bei diesem Kommando nur notwendig, sollten sich die Dateien nicht im Verzeichnis „/etc“ befinden.


pwunconv


Hier werden verschlüsselte Passwörter aus der Datei „/etc/shadow“ in die „/etc/passwd“ verschoben und anschließend „/etc/shadow“ gelöscht.


pwck


Prüft die Integrität der Dateien „/etc/passwd“ und „/etc/shadow“.


Beispiel:

root@home:~# pwck
pwck: Keine Änderungen




grpconv


Das Kommando ist aquivalent zu „pwconv“, es werden lediglich die Dateien „/etc/group“ und „/etc/gshadow“ eingelesen.


grpunconv


Das Kommando ist aquivalent zu „pwunconv“, es werden lediglich die Dateien „/etc/group“ und „/etc/gshadow“ eingelesen.


grpck


Prüft die Integrität der Dateien „/etc/group“ und „/etc/gshadow“ (wie „pwck“).



User wechseln


Linux und BSD sind mehrbenutzer Systeme. Um sich z.B. als Systemadministator einzuloggen ist der Nutzer „root“ vorgesehen. Nur „root“ kann wichtige Konfigurationen vornehmen.

Hierfür gibt es folgende Befehle:


su


Mit „su“ (Switch User) läßt sich eine neue Shell des gewählten Nutzers starten. Hierfür ist das Passwort des Nutzers notwendig, nur „root“ darf in alle Nutzer Shells abtauchen.


Syntax:



Optionen:



hans@home:~$ su root
Passwort:
root@home:/home/hans# 

Oben wird der „su“ Befehl ohne Optionen ausgeführt. „root“ bekommt eine Shell und befindet sich im letzten Verzeichnis des Nutzers „hans“.


hans@home:~$ su - root
Passwort:
root@home:~#

Hier wurde vor dem Nutzernamen ein [-] hinzugefügt, dadurch landet man beim Benutzerwechsel gleich im jeweiligen Heimatverzeichnis des angegebenen Nutzers.

Mit der Option -c [user] kann ein gewünschter Befehl als [user x] ausgeführt werden.




sudo


Hier wird keine Shell als „root“ oder „nutzerrname“ gestartet, sondern führt das Kommando nur einmalig mit „root“, „nutzername“ rechten aus. Wird auch hier kein Nutzer angegeben, startet das Programm mit „root“ rechten. In der Konfigurationsdatei „/etc/sudoers“ kann das erlauben oder verbieten der Nutzung von „sudo“ für die jeweiligen Nutzer gesteuert werden. Der „sudo“ Befehl wird Standardmäßig bei Ubuntu Systeme verwendet.


Sinnvoll ist das z.B., wenn ein Nutzer gelegentlich, für ein Kommando „root“ Rechte benötigt.




Syntax:



Optionen:



sudo ohne -u [useridentität] ausgeführt, wird root als Identität genommen.





SetUID / SetGID


Durch das setzen von „SetUID / SetGID“ Bits können die Berechtigungen eines anderen Nutzers verwendet werden. Diese Rechte werden auf Dateien gesetzt und mit den Rechten des Besitzers oder der Gruppe der Datei ausgeführt. Weitere Informationen hierzu in Dateirechte.



Nutzer bearbeiten


Für die verschiedenen Aufgaben zur Benutzerverwaltung gibt verschiedene Kommandos zur Bearbeitung. Die Befehle „adduser“, „deluser“, „addgroup“ und „delgroup“ sind Debian spezifische Kommandos. Die Standardkommandos zur Nutzerverwaltung, „useradd“, „groupadd“ usw. berücksichtigen bei Debian Systeme die in den „/etc/adduser.conf“ und „/etc/deluser.conf“ definierten Regeln. Bei Red Hat und Fedora sind die Kommandos „adduser“, „addgroup“ usw. lediglich Links auf „useradd“ bzw. „groupadd“ usw., weshalb sich hier die Syntax nicht unterscheidet, wie z.B. bei Debian .

Beim Anlegen eines neuen Nutzers kann das Verzeichnis „/etc/skel/“ so modifiziert werden, dass die Verzeichnisstruktur innerhalb von „/etc/skel/“ in das Heimatverzeichnis des neuen Nutzers kopiert und mit den jeweiligen Rechten ausgestattet werden.


useradd


Hinzufügen eines neuen Nutzers mit dem Befehl „useradd“.


Syntax:



Optionen:




Beispiele:

useradd -m -s /bin/bash -c testuser hans

Hier wird der neue Nutzer „hans“ in die Gruppe „hans“ und ein Heimatverzeichnis „/home/hans/*“ mit Standardverzeichnissen aus den Dateien in „/etc/skel“ angelegt. Als Shell bekommt der neue Nutzer „hans“ die Standardshell „bash“ zugewiesen, als Kommentar wurde „testuser“ definiert.


root@home:~# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

Zeigt die Standardeinstellungen zu „useradd“. Die Konfigurationsdatei zu „useradd“ befindet sich in der Datei „/etc/default/useradd“.


Soll mit „useradd -g“ der neue Nutzer einer Gruppe zugeführt werden, muß diese bereits angelegt sein.



Legt man einen neuen Nutzer ohne die Option [-m] an, kann es bei der Anmeldung zu Fehlermeldungen kommen.




adduser (Debian)


Ist ein Debian spezifisches Kommando, wobei ein angelegter Benutzer zu seiner Gruppe, jedoch keiner Systemgruppe hinzugefügt wird. Nach dem Start von „adduser“ wird ein Dialog in der Shell angezeigt, der auf Eingaben wartet.

Gibt man hier keine Optionen an, werden die Voreinstellungen der Datei „/etc/adduser.conf“ (Standard Konfiguratinsdatei von „adduser“ und „addgroup“) verwendet, sowie die Konfigurationsdateien von „/etc/skel“ in das Heimatverzeichnis des neuen Nutzers hineinkopiert. „adduser“ vergibt dann die erste freie „UID“ des in der Konfigurationsdatei festgelegten Bereichs.


Syntax:




Optionen:




Beispiel:

adduser hans --ingroup gruppe

Hier wird der neue Nutzer „hans“ der Gruppe [gruppe] hinzugefügt.


Standardmäßig wird bei neu angelegten Benutzern das Heimatverzeichnis Systemweit (auch von anderen Benutzern) lesbar sein. Will man das nicht, kann man den unten genannten Befehl verwenden.


root@home:~# dpkg-reconfigure adduser


adduser.jpg



usermod


Nutzer Einstellungen bearbeiten.


Syntax:



Optionen:



Zum ändern der User Einstellungen darf der Nutzer nicht angemeldet sein.




Beispiele:

root@home:/# usermod -G video,audio,www-data hans

Hier wird der Nutzer „hans“ den Gruppen „video“, „audio“ und „www-data“ hinzugefügt.


root@home:/# usermod -d /home/verwaltung/hans -m hans

Den Nutzer „hans“ mit seinen Heimatverzeichnissen nach „/home/verwaltung/hans“ umziehen.



userdel


Löscht einen Nutzer und seine Verzeichnisse.


Syntax:




Optionen:




Rückgabewerte:




Beispiel:

[root@home ~]# userdel -rf karl && echo $?
0

Löscht den Nutzer „karl“ inclusive Heimatverzeichnis, Mailverzeichnis und Dateien im Nutzerverzeichnis die nicht „Karl“ gehören und gibt dabei den Wert [0] (Aktion erfolgreich) zurück.



deluser (Debian)


Nutzer und Gruppen aus dem System entfernen. Bedinungsfreundlichere Frontends für „userdel“ und „groupdel“. Ohne Optionen entfernt „deluser“ den Benutzer, ohne das Heimatverzeichnis, die Emails und andere dem Benutzer gehörende Dateien zu löschen.


Wird „deluser“ mit der Option „--group“ angewendet, werden auch die jeweiligen Gruppen vom System entfernt.




Syntax:




Optionen:




Rückgabewerte:





chfn


Nutzerkonto Informationen auflisten / zuweisen. Diese Informationen werden z.B. von dem Programm finger verwendet. Ein Nutzer darf nur seine eigenen Felder bearbeiten, diese können in der Datei /etc/login.defs eingeschränkt werden. „chfn“ [nutzername] ohne Optionen, geht alle Infos durch und wartet auf Bestätigung.


root@home:/# chfn hans
Benutzerinformationen für hans werden geändert.
Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert
	Vollständiger Name [Hans Dampf]: 
	Raumnummer []: 
	Telefon geschäftlich [0123456]: 
	Telefon privat [0123456]: 
	Sonstiges []: 




Syntax:




Optionen:





chsh


Das Kommando „chsh“ (change shell), dient zum ändern der „Login-Shell“. Dabei darf ein eingeloggter Nutzer nur seine eigene, „root“ die Shells aller Nutzer ändern. In der Datei /etc/shells sind alle möglichen Login-Shells aufgelistet.


Syntax:




Optionen:




Beispiel:

chsh -s /bin/csh hans

Hier wird dem Nutzer „hans“ die csh Shell als Login-Shell zugewiesen.


chsh“ ohne die Option -s startet das Programm im interaktiven Modus, gibt man eine Shell an, wird die Login-Shell geändert, gibt man ein leeres Zeichen ein, bleibt der alte Wert erhalten.





chage


Ist ein Kommandozeilen Werkzeug zum festlegen der Tage zwischen Passwort änderungen, b.z.w., wann ein Benutzer sein Passwort ändern muß. Als „root“ ausgeführt erwartet das Programm eine Eingabe, als Benutzer kann man mit der Option [-l] seine Parameter einsehen.


Syntax:




Optionen:




Rückgabewerte:




Beispiele:

hans@home:~$ chage -l hans
Letzte Passwortänderung					: Jan 04, 2010
Passwort läuft ab					: nie
Passwort inaktiv					: nie
Benutzerzugang läuft ab					: nie
Minimale Anzahl der Tage zwischen Passwortänderungen	: 0
Maximale Anzahl der Tage zwischen Passwortänderungen	: 99999
Anzahl Tage, an denen vor Passwortablauf gewarnt wird	: 7


root@home:# chage hans
Passwortalterung für hans wird geändert.
Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert

	Minimales Passwortalter [0]: 
	Maximales Passwortalter [99999]: 
	Letzte Passwortänderung (JJJJ-MM-TT) [2010-01-04]: 
	Passwortablaufwarnung [7]: 
	Passwort inaktiv [-1]: 
	Ablaufdatum des Benutzerzugangs (JJJJ-MM-TT) [2012-12-31]: 





Gruppen bearbeiten


Für die verschiedenen Aufgaben zur Benutzerverwaltung gibt es, wie oben schon Beschrieben mehr Kommandos zur Bearbeitung. Das gilt natürlich auch für die Gruppenbearbeitung.



groupadd


Eine neue Gruppe hinzufügen.


Syntax:




Optionen:





groupmod


Gruppeneigenschaften ändern.


Syntax:




Optionen:





groupdel


Gruppen löschen. Eine Übergabe von Optionen ist nicht erforderlich.


Syntax:




Optionen:





delgroup (Debian)


Gruppe löschen. Debian spezifisch.


Syntax:




Optionen:





gpasswd


Das Kommando „gpasswd“ dient zum bearbeiten von Gruppenzugehörigkeiten (/etc/group) und Gruppenpasswörter (/etc/gshadow).


Syntax:




Optionen:





/etc/gshadow


Hier werden Gruppenname und Gruppenpasswort gespeichert.


....
cdrom:*::hans
floppy:*::hans
tape:*::
sudo:*::
audio:*::hans
....



  1. Feld ⇒ Gruppenname.
  2. Feld ⇒ Gruppenpasswort(verschlüsselt).
  3. Feld ⇒ Gruppenadministratoren.
  4. Feld ⇒ Gruppenmitglieder.




Gruppenadministratoren dürfen, außer „root“, das Gruppenpasswort ändern, Benutzer der Gruppe hinzufügen und Benutzer aus der Gruppe entfernen. Gruppenadministrator(en) darf nur „root“ über „gpasswd -A [user,..]“ festlegen.





newgrp


Mit diesem Befehl kann man ohne sich ab und wieder anzumelden, während einer Sitzung als neue Gruppe anmelden. Wird „newgrp - [gruppe]“ angewendet, wird die Benutzerumgebung so neu gestartet als ob sich der Benutzer neu angemeldet hätte, ohne den Schalter [-] bleibt die aktuelle Benutzerumgebung und Arbeitsverzeichnisse unverändert, hierbei ist jedoch zu beachten, dass beim Wechsel in eine andere Gruppe eine neue Shell gestartet wird und ggf. gesetzte Variablen exportiert werden müssen.


Syntax:




Wenn kein Gruppenname angegeben wird, wechselt der Benutzer in die Standardgruppe, die in der „/etc/passwd“ festgelegt ist. „newgrp“ wird versuchen die Gruppe der Gruppensammlung des Benutzers hinzuzufügen. Sollte der Benutzer nicht Mitglied der Gruppe und nicht „root“ sein, die Gruppe ein Passwort besitzt, wird nach einem Passwort gefragt und der Benutzer kann einer neuen Gruppe beitreten. Verweigert wird der Zugriff jedoch, sollte das Gruppenpasswort leer oder der Benutzer nicht Mitglied der Gruppe sein.


Befindet sich ein Eintrag zur Gruppe in der „/etc/gshadow“ wird die Mitgliederliste und Passwort dieser Datei verwendet, ansonsten werden die Einträge der „/etc/group“ zum Einsatz.



Das Verhalten von „newgrp“ kann in der Datei „/etc/login.defs“ konfiguriert werden.

Tritt man einer neuen Gruppe bei hat dies Auswirkungen auf neu erstellte Dateien, da eine Datei nur einer Gruppe angehören kann. Ändert man die GID nicht, wird eine neue Datei mit der primären Gruppe aus der „/etc/passwd“ hinzugefügt. (Siehe auch) Dateirechte.





Cloud