Linux ist ein Mehrbenutzer-System,
d.h. es können mehrere Benutzer über Terminals oder das
Netz mit dem System arbeiten. Jeder Benutzer hat unter Linux seine
eigenen Dateien und Verzeichnisse, in die andere Benutzer nicht
ohne weiteres Einblick nehmen (oder sie gar verändern) dürfen.
Diese liegen in der Regel im sogenannten Home-Verzeichnis unter
/home. Jeder Benutzer hat dort einen eigenen Ordner mit seinem
Benutzernamen, z.B. /home/udo. Ebenso dürfen Benutzer
wichtige Systemdateien nicht modifizieren oder manchmal auch nicht
einmal anschauen. Dies ist eines der herausragendsten Sicherheitsmerkmale
von Linux, da ein Virus der auf das System kommt, automatisch diesselben
Rechte wie der angemeldete Benutzer hat, der ihn mitgebracht hat.
Da der Virus dann lediglich Benutzer-Rechte hat, kann er an wichtigen
Systemdateien nichts verändern!
Jeder Benutzer wird einer
primären Gruppe zugeordnet, damit hat jede Datei und
jedes Verzeichnis genau einen Besitzer und eine Gruppenzugehörigkeit.
Systemintern wird jeder Benutzer eindeutig anhand seiner UID
(User ID) identifiziert und die Gruppe anhand der
GID (Gruppen ID).
Die zentrale Benutzerdaten-Datei
ist die Datei
# /etc/passwd
Jeder Benutzer auf dem System hat einen Eintrag in dieser Datei,
bestehend aus einer Zeile in der Attribute wie Benutzername, "richtiger"
Name, usw. festgehalten werden. Ein Beispiel:
udo:x:1000:1000:Udo,,,:/home/udo:/bin/bash
Die Einträge haben folgendes Format:
(Benutzername):(Kennwort):(UID):(GID):(GECOS):(Heimatverzeichnis)
:(Shell)
Alle Passwörter
werden in verschlüsselter Form in der Datei
# /etc/shadow
gespeichert. Das Format der Einträge:
(Benutzername):(Kennwort):(Änderung):(Min):(Max):(Warnung):(Frist)
:(Sperre):(Reserviert)
Das Kennwort wird wie gesagt in verschlüsselter Form gespeichert.
Ein Stern * oder ein Ausrufungszeichen ! zeigen an,
daß es keine Kennwortvergabe gibt (bei imaginären Benutzern),
der entsprechende Benutzer kann sich nicht anmelden. Ein leerer
Eintrag bedeutet, daß der Benutzer sich ohne Kennwort anmelden
kann.
Änderung = das Datum der letzten Änderung des Kennworts,
in Tagen seit dem 1. Januar 1970.
Min = Minimale Anzahl von Tagen, die seit der letzten Kennwortänderung
vergangen sein müssen, damit das Kennwort wieder geändert
werden kann.
Max = Maximale Anzahl von Tagen, die ein Kennwort ohne Änderung
gültig bleibt. Nach Ablauf der Frist muß der Benutzer
sein Kennwort ändern.
Warnung = Die Anzahl von Tagen vor dem Ablauf der (Max)-Frist,
an denen der Benutzer eine Warnung erhält, daß er sein
Kennwort bald ändern muß. Die Meldung erscheint in der
Regel beim anmelden.
Gnaden-Frist = Die Anzahl von Tagen ausgehend vom Ablauf
der (Max)-Frist, nach der das Konto automatisch gesperrt wird. In
der Zeit zwischen dem Ende der (Max)-Frist und dem Ende dieser Frist
kann der Benutzer sich anmelden, muß aber sofort sein Kennwort
ändern.
Sperre = Das Datum, an dem das Konto definitiv gesperrt wird,
wieder in Tagen seit dem 1. Januar 1970.
Benutzer anlegen und löschen
Mit dem Befehl useradd
werden Benutzer-Konten angelegt. Die einfachste Form um einen Benutzer
anzulegen ist die Übergabe des Namens, z.B.
# useradd Benutzername
Allerdings wird bei dieser einfachen Angabe keinerlei Heimatverzeichnis
in /home angelegt. Möchte man ein Heimatverzeichnis benötigt
man die Option -m:
# useradd -m Benutzername
Um die korrekte Login-Shell auszuwählen, hilft -s:
# useradd -m -s /bin/bash Benutzername
möchte man die primäre Gruppe ändern, die Option
-g:
# useradd -m -s /bin/bash -g Gruppe Benutzername
Und möchte man noch einen ausführlichen Namen angeben,
kann man das mit -c:
# useradd -m -s /bin/bash -g chef -c "Ich Chef" udo
legt den Benutzer udo an, sein Heimat-Verzeichnis unter /home/udo,
seine Login-Shell /bin/bash, fügt ihn der primären
Gruppe chef hinzu und gibt ihm den vollständigen Namen
"Ich Chef". ;-)
Nach dem Anlegen mit useradd ist das neue Konto noch nicht zugänglich.
Der Systemverwalter muß zuerst noch ein Kennwort vergeben.
Das macht man mittels des Befehls passwd.
# passwd Benutzername
Geben sie ein neues UNIX-Paßwort ein:
Um einen Benutzer zu
löschen hilft folgender Befehl:
# userdel -r Benutzername
Die Option -r löscht auch das Heimatverzeichnis samt
Inhalt, sowie seine Mailbox in /var/mail.
Benutzerkonten verändern
Zum
nachträglichen Verändern von User-Konten gibt es den Befehl
usermod, z.B.:
# usermod -l NEUERNAME ALTERNAME
Option -l (kleines L) benennt den Benutzer um. Achtung! Dazu muß der Benutzer vom System abgemeldet sein!
Möchte man nicht nur den Namen ändern, sondern das ganze System auf den neuen Benutzer umstellen, sollte man folgendermaßen vorgehen:
- Zuerst sollte man den Benutzer vom System abmelden.
- Anschließend benennt man ihn mittels
# usermod -l NEUERNAME ALTERNAME
um.
- Den vollständigen Namen ändern man mit:
# chfn -f NEUER_VOLLSTÄNDIGER_NAME NEUERNAME
- Dann kann man den Heimat-Ordner umbennen:
# mv -v /home/ALTERNAME /home/NEUERNAME
- Mittels
# usermod -d /home/NEUERNAME -m NEUERNAME
ordnet man das Heimat-Verzeichnis dem neuen Benutzer zu.
- Und zuletzt sollte man noch die Standardgruppe umbenennen. Dazu öffnet man die Datei /etc/group und ändern den Gruppennamen der zugehörigen Benutzer-ID.
# usermod -L chris
sperrt den Benutzer chris
# usermod -s /bin/fish diana
setzt die Shell für den Benutzer diana auf /bin/fish
Informationen über
Benutzer und Gruppen
Mit Hilfe des Befehls
id kann man seine eigene Benutzernummer und die Gruppenzugehörigkeit
herausfinden oder die von Anderen:
# id
uid=1000(udo) gid=1000(udo) Gruppen=1000(udo), 500(design), ....
# id sonja
uid=1001(sonja) gid=1001(sonja) Gruppen=1001(sonja),1000(udo)....
Mit Hilfe des Befehls groups werden sämtliche Gruppen
eines users angezeigt.
# groups
root
# groups udo
udo dialout cdrom floppy audio video plugdev powerdev scanner netdev
Gruppenverwaltung
Jeder User wird einer
primären Gruppe zugeordnet.
Die Gruppenzugehörigkeit jedes Users findet sich in der Datei
/etc/group, welche folgendes Format hat:
(Gruppenname):(Kennwort):(GID):(Mitglieder)
Analog zu den Befehlen useradd, usermod und userdel
existieren die Befehle groupadd, groupmod und groupdel.
Mittels groupadd werden neue Gruppen erzeugt, z.B.
# groupadd training
Zum hinzufügen eines Benutzers zu einer Gruppe kann man die
Datei /etc/group editieren und einfach hinter der entsprechenden
Gruppe die User durch Kommata getrennt einfügen oder man verwendet
die Befehle adduser oder usermod:
# adduser Benutzer Gruppe
Ohne Angabe von Optionen fügt adduser einen existierenden
Benutzer einer existierenden Gruppe hinzu.
# usermod -G gruppe -a Benutzer
die option -a (add=hinzufügen) ist hier sehr wichtig,
da ohne die Option der Benutzer zwar der angegebenen Gruppe hinzugefügt
wird, aber aus allen anderen Gruppen gelöscht wird!
Unterschied adduser - useradd
Zieht man die manpage
zu rate, stellt man fest, daß der Befehl useradd ein
grundlegender Befehl zur Benutzerverwaltung ist, der auf jedem Linux
System funktioniert, während adduser ein Frontend
für useradd darstellt, um einen Benutzer auch ohne weitere
Kommandozeilen-Angaben vollständig anzulegen. Dabei wird bei
der Erstellung des Benutzers eine Reihe von Fragen abgearbeitet.
Das ist weder schlechter noch besser, man hat schlicht und ergreifend
die Wahl, ob man mit Hilfe von useradd und vielen Optionen den User
anlegt, oder mittels useradd eine Reihe von Fragen abarbeitet und
so den neuen Benutzer im System erstellt. Wie man wieder mal sieht,
gibt es unter Linux viele Wege, die zum Ziel führen.
|