Grundlagen von Linux


* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba

Grundlagen


© <a href="http://www.fotolia.de/p/29003">Ljupco Smokovski</a> - FOTOLIA
Home
Benutzerverwaltung
Dateiverwaltung
Root-Passwort vergessen
Verzeichnisstruktur
Zugriffsrechte im Dateisystem
Mit freundlicher Unterstützung von:

Linux-Kurse und Seminare Linux Kurse
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


Benutzer 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:
  1. 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.
  2. gewöhnliche Benutzer haben uneingeschränkten Zugriff auf ihre eigenen Dateien aber nur eingeschränkten Zugriff auf den Rest des Dateisystems.
  3. 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:
  1. leer, d.h. kein Zeichen zwischen den beiden Doppelpunkten. Dadurch ist ein Login ohne Passwortabfrage möglich.
  2. Ein x als Eintrag bedeutet, dass das eigentliche kodierte Passwort in in /etc/shadow steht.
  3. 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.
  1. Anpassen der Datei /etc/passwd, d.h. einfügen einer Zeile:
    marge:x:503:100:Marge Simpson:/home/marge:/bin/bash
  2. Anpassen der Datei /etc/shadow.
    Am einfachsten mit dem Kommando pwconv. Danach gegebenenfalls manuelle Bearbeitung für individuelle Abweichungen
  3.  Setzen des Passwortes für Marge:
    root@simpsons # passwd marge
    New Password: *********
    Reenter New Password: *********
    Password changed.
  4.  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.
  1. 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.
  2. 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

© Copyright 2007 - 2010, Bernd Klein mit freundlicher Unterstützung von Bodenseo, Linux-Kurse und Schulungen,
Foto linke Seite (Mann mit Strick und Colt): Foto: © Ljupco Smokovski, fotolia 984022