Grundlagen
Home
Benutzerverwaltung
Dateiverwaltung
Root-Passwort vergessen
Verzeichnisstruktur
Zugriffsrechte im Dateisystem
Mit freundlicher Unterstützung von:
Linux-Kurse und Seminare
Veranstalter des
Linux-Tag am Bodensee 2007 und 2008
Kontakt
Haftung
Impressum
Problem Hilfe Startseite
|
Benutzerverwaltung
"Treffen
Einfalt und Gründlichkeit
zusammen, entsteht Verwaltung", Oliver Hassencamp
Linux ist ein Multiuser-System
und benötigt Mechanismen, die festlegen, wer auf welche Dateien
und Verzeichnisse zugreifen darf und wer welche Programme starten darf.
Dazu gibt es unter Linux Benutzer und Gruppen. Jeder Benutzer ist
mindestens einer Gruppe zugeordnet. Für jeder Datei (und damit
auch jedem Programm) ist ein Besitzer, eine Gruppenzugehörigkeit
und ein Zugriffsbit gespeichert.
Es gibt drei Arten von Benutzer:
- Der Super-User mit dem Namen „root“ hat uneingeschränkte
Rechte, d.h. root darf alle Dateien ansehen, verändern,
löschen, alle Programme starten usw.
- gewöhnliche Benutzer haben uneingeschränkten Zugriff
auf ihre eigenen Dateien aber nur eingeschränkten Zugriff auf den
Rest des Dateisystems.
- Benutzer für Dämonen und Server-Dienste, die nicht
für den interaktiven Einsatz vorgesehen sind, z.B. „httpd“ als
Benutzer für den Webserver Apache.
Benutzername:
Der Benutzer-Name (Login-Name) sollte nur aus Kleinbuchstaben bestehen
und nach Möglichkeit nicht länger als acht Zeichen sein, denn
sonst könnte es Probleme mit bestimmten Programmen geben.
Beispielsweise unterscheidet FTP nicht zwischen Groß- und
Kleinschreibung.
Aufbau von passwd
Die Datei /etc/passwd enthält eine Liste aller Benutzer
Beispiel: Auszug aus einer passwd-Datei:
at:x:25:25:Batch
jobs daemon:/var/spool/atjobs:/bin/bash
beagleindex:x:108:110:User for Beagle
indexing:/var/cache/beagle:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
dhcpd:x:102:65534:DHCP server daemon:/var/lib/dhcp:/bin/false
ftp:x:40:49:FTP account:/srv/ftp:/bin/bash
....
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
root:x:0:0:root:/root:/bin/bash
squid:x:31:65534:WWW-proxy squid:/var/cache/squid:/bin/false
sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false
homer:x:1000:100:Homer Simpson:/home/homer:/bin/bash
bart:x:1001:100:Bart Simpson:/home/bart:/bin/bash
|
Jeder Eintrag folgt der folgenden Syntax und Semantik:
Login:Passwort:UID:GID:INFO:Home-Verzeichnis:Shell
Für den Eintrag Passwort gibt es drei Möglichkeiten:
- leer, d.h. kein Zeichen zwischen den beiden Doppelpunkten.
Dadurch ist ein Login ohne Passwortabfrage möglich.
- Ein x als Eintrag bedeutet,
dass das eigentliche kodierte Passwort in in /etc/shadow steht.
- verschlüsseltes Passwort
steht direkt zwischen den Doppelpunkten.
Dies ist auf neueren Systemen nicht mehr üblich, aber noch
möglich.
UID:
User ID. eine nichtnegative Zahl < 64000 und für normale
Benutzer > 100
GID:
Gruppen-ID: nichtnegative Zahl
< 64000
Info (GCOS): (wichtig
für finger und mail). Mehrere Einträge möglich:
Vollständiger Name des Benutzers; Telefon- und/oder Zimmernummer
des Benutzers. Per Komma getrennt sind drei weitere Angaben
möglich:
umask=... Die Maske für neu
erstellte Dateien
pri=...
Ein Nice-Faktor für Prozesse
ulimit=... Versch.
Beschränkungen der Systemressourcen
Home-Verzeichnis: Startverzeichnis
nach Login
Shell:
Default-Shell
/etc/shadow
Die eigentlichen Passwörter (in kodierter Form) befinden sich
normalerweise in /etc/shadow
saturn:~
# more /etc/shadow
at:!:13430:0:99999:7:::
beagleindex:!:13430:0:99999:7:::
bin:*:13430::::::
daemon:*:13430::::::
dhcpd:!:13430:0:99999:7:::
ftp:*:13430::::::
...
root:$2a$05$51ar3yr1z2IsHmXE45hIteDKPc0RXporhNnz76lEffaKGmTpkSAS:13430::::::
squid:!:13430:0:99999:7:::
sshd:!:13430:0:99999:7:::
uucp:*:13430::::::
wwwrun:*:13430::::::
homer:$2a$35$fUA.hUtBmOzD1cB.hQ9oFOdH8Vg.pQFizXqeCDTL1hl9EFohcOPfq:13430:0:99999:7:-1::
bart:!$2a$05$WjUK0wu2GVqqoQtf5fDni./2ayK0qWQbUqcM3P8l0PLncUF76oP4y:13432:0:99999:7:-1::
|
Login:EncrPassw:lc:MinC:MaxC:Warn:AE:AD:reserved
Login |
identischer Benutzername wie in
/etc/passwd |
EncrPassw |
verschlüsseltes Passwort
Steht nur ein * anstelle eines Passwort-Codes, gibt es
kein Passwort und ein Einloggen ist generell nicht
möglich. |
lc
|
Tag, gezählt vom 1.1.1970,
an dem das Passwort das letzte Mal geändert wurde. (am 1.1.2000
z.B. 10957 Tage) |
MinC |
Minimale Anzahl Tage, die das
Passwort gültig ist |
MaxC |
Maximale Anzahl Tage, die das
Passwort gültig ist |
Warn
|
Anzahl der Tage vor Ablauf des
Passwortes, ab der vor dem Verfall gewarnt wird. |
AE
|
Anzahl der Tage an denen das
Passwort über das Verfallsdatum (MaxC) hinweg gültig bleibt.
(-1 entspr. uneingeschr. Zugriff)
|
AD |
Anz. der Tage seit 1.1.1970 seit
der Account gesperrt ist. |
reserved
|
reserviertes noch nicht
benutztes Feld |
Gruppen
Gruppen dienen dazu mehreren Benutzern den gemeinsamen Zugriff auf
Dateien zu ermöglichen. Jeder Benutzer wird einer primären
Gruppe zugeordnet (initial group) kann aber auch zu beliebig vielen
andern Gruppen gehören.
Die Liste aller Gruppen enthält die Datei /etc/group
allgemeines Format einer Zeile in /etc/group
Gruppenname:Passwort:GID:Benutzerliste
at:!:25:
audio:x:17:
avahi:!:108:
beagleindex:!:110:
bin:x:1:daemon
cdrom:x:20:
console:x:21:
daemon:x:2:
dialout:x:16:homer,bart, marge,lisa,maggie
disk:x:6:
floppy:x:19:
ftp:x:49:
....
uucp:x:14:
video:x:33:homer,bart, marge,lisa,maggie
wheel:x:10:
www:x:8:
xok:x:41:
users:x:100:
|
Ein Ausrufezeichen im Passwort-Feld bedeutet, dass der Account
vorübergehend gesperrt ist.
/etc/skel
Konfigurationsdateien mit Grundkonfigurationen von Standardprogrammen
oder Programmen, die ein Systemverwalter für seine Nutzer als
wichtig erachtet, können in /etc/skel kopiert werden.
Beim Anlegen eines neuen Benutzers wird dann der komplette Inhalt von
/etc/skel in das Home-Verzeichnis des neuen Benutzers kopiert.
Ändern von Passwörtern
Ein fiktiver Benutzer "homer" kann sein Passwort wie folgt ändern:
simpson:/home/homer
> passwd
Changing password for homer.
Old Password: ********
New Password: *********
Reenter New Password: *********
Password changed. |
Als normaler Benutzer kann man nur sein eigenes Passwort
ändern, aber als root kann man die Passwörter aller Benutzer
ändern. Als Superuser kann man folgendermaßen das Passwort
für Homer ändern:
simpson:~
# passwd homer
Changing password for homer.
Old Password: ********
New Password: *********
Reenter New Password: *********
Password changed.
|
Anlegen eines neuen Benutzers
Es gibt verschiedene Möglichkeiten einen neuen Benutzer anzulegen:
- manuelle Eintragungen in den entsprechenden Dateien
- Hilfsprogramme adduser und useradd
- Distributionseigene (GUI-)Tools
Der "harte" Weg zum Anlegen eines neuen
Benutzers durch Änderung in den entsprechenden Dateien:
Wir wollen einen neuen Benutzer "marge" anlegen.
- Anpassen der Datei /etc/passwd, d.h. einfügen einer Zeile:
marge:x:503:100:Marge Simpson:/home/marge:/bin/bash
- Anpassen der Datei /etc/shadow.
Am einfachsten mit dem Kommando pwconv. Danach gegebenenfalls manuelle
Bearbeitung für individuelle Abweichungen
- Setzen des Passwortes für Marge:
root@simpsons # passwd marge New Password: ********* Reenter New Password: ********* Password changed.
- Anlegen eines Homeverzeichnisses:
cp -R /etc/skel /home/marge
Benutzer anlegen mit adduser bzw.
useradd:
Für herkömmliche Passwort-Systeme ohne shadow gibt es
das adduser-Kommando zum hinzufügen eines Benutzers. Für ein
shadow-System kann man das neuere Kommando useradd verwenden, welches
auch die automatische Anpassung an /etc/shadow durchführt.
useradd
[-D binddn] [-P path] [-c comment] [-d homedir]
[-e expire] [-f
inactive] [-G group,...] [-g gid]
[-m [-k skeldir]] [-o]
[-p password] [-u uid]
[-r] [-s shell]
[--service service] [--help]
[--usage] [-v] account
|
useradd -m -u 503 -c "Marge Simpson" marge
Die nicht explizit gesetzten Werte werden mit
den Default-Werten aus der Datei /etc/default/useradd belegt.
Löschen eines Benutzers
Hierfür gibt es auch analog zur Anlage eines neuen Benutzers drei
Wege.
- direkt über Datei-Inhalte
Eintrag des Benutzers aus der Datei /etc/passwd entfernen.
Eintrag aus der Datei /etc/shadow entfernen, was entweder per Editor
oder durch Aufruf von pwconv erfolgen kann. Löschen des
Home-Verzeichnisses des Benutzers.
- mittels deluser oder userdel
Herkömmliches Passwort-System (nicht mehr gebräuchlich) mit
Passwörter in /etc/passwd: Der zu adduser korrespondierende Befehl
lautet deluser.
Für Shadow-Passwort-Systeme: Das zu useradd korrespondierende
Kommando zum Löschen eines Benutzers lautet userdel.
Beispiel: Benutzer nelson wird nur aus der Benutzerverwaltung
gelöscht:
# userdel nelson
Löschen aus Benutzerverwaltung und Löschung des
Homerverzeichnisses:
# userdel -r nelson
|