Nächste: Tastaturbelegung, Vorige: Swap-Speicher, Nach oben: Systemkonfiguration [Inhalt][Index]
Benutzerkonten und Gruppen werden allein durch die
operating-system
-Deklaration des Betriebssystems verwaltet. Sie
werden mit den user-account
- und user-group
-Formen angegeben:
(user-account
(name "alice")
(group "users")
(supplementary-groups '("wheel" ;zur sudo-Nutzung usw. berechtigen
"audio" ;Soundkarte
"video" ;Videogeräte wie Webcams
"cdrom")) ;die gute alte CD-ROM
(comment "Bobs Schwester"))
Hier sehen Sie ein Benutzerkonto, das eine andere Shell und ein geändertes Persönliches Verzeichnis benutzt (die Vorgabe wäre "/home/bob"):
(user-account
(name "bob")
(group "users")
(comment "Alices Bruder")
(shell (file-append zsh "/bin/zsh"))
(home-directory "/home/robert"))
Beim Hochfahren oder nach Abschluss von guix system reconfigure
stellt das System sicher, dass nur die in der
operating-system
-Deklaration angegebenen Benutzerkonten und Gruppen
existieren, mit genau den angegebenen Eigenschaften. Daher gehen durch
direkten Aufruf von Befehlen wie useradd
erwirkte Erstellungen
oder Modifikationen von Konten oder Gruppen verloren, sobald rekonfiguriert
oder neugestartet wird. So wird sichergestellt, dass das System genau so
funktioniert, wie es deklariert wurde.
Objekte dieses Typs repräsentieren Benutzerkonten. Darin können folgende Komponenten aufgeführt werden:
name
Der Name des Benutzerkontos.
group
¶Dies ist der Name (als Zeichenkette) oder die Bezeichnung (als Zahl) der Benutzergruppe, zu der dieses Konto gehört.
supplementary-groups
(Vorgabe: '()
)Dies kann optional als Liste von Gruppennamen angegeben werden, zu denen dieses Konto auch gehört.
uid
(Vorgabe: #f
)Dies ist entweder der Benutzeridentifikator dieses Kontos (seine „User ID“)
als Zahl oder #f
. Bei Letzterem wird vom System automatisch eine Zahl
gewählt, wenn das Benutzerkonto erstellt wird.
comment
(Vorgabe: ""
)Ein Kommentar zu dem Konto, wie etwa der vollständige Name des Kontoinhabers.
Beachten Sie, dass Benutzer den für ihr Benutzerkonto hinterlegten echten
Namen beliebig ändern können, außer es handelt sich um
„System“-Benutzerkonten. Den in /etc/passwd gespeicherten Namen
können sie mit dem Befehl chfn
ändern. Wenn sie das tun, hat der
gewählte Name Vorrang vor dem vom Systemadministrator auserkorenen
Namen. Rekonfigurieren ändert den Namen nicht.
home-directory
Der Name des Persönlichen Verzeichnisses („Home“-Verzeichnis) für dieses Konto.
create-home-directory?
(Vorgabe: #t
)Zeigt an, ob das Persönliche Verzeichnis für das Konto automatisch erstellt werden soll, falls es noch nicht existiert.
shell
(Vorgabe: Bash)Ein G-Ausdruck, der den Dateinamen des Programms angibt, das dem Benutzer als Shell dienen soll (siehe G-Ausdrücke). Auf die Programmdatei der Bash-Shell würden Sie zum Beispiel so verweisen:
(file-append bash "/bin/bash")
… und so auf die Programmdatei von Zsh:
(file-append zsh "/bin/zsh")
system?
(Vorgabe: #f
)Dieser boolesche Wert zeigt an, ob das Konto ein „System“-Benutzerkonto ist. Systemkonten werden manchmal anders behandelt, zum Beispiel werden sie auf grafischen Anmeldebildschirmen nicht aufgeführt.
password
(Vorgabe: #f
)Normalerweise lassen Sie dieses Feld auf #f
und initialisieren
Benutzerpasswörter als root
mit dem passwd
-Befehl. Die
Benutzer lässt man ihr eigenes Passwort dann mit passwd
ändern. Mit passwd
festgelegte Passwörter bleiben natürlich beim
Neustarten und beim Rekonfigurieren erhalten.
Wenn Sie aber doch ein anfängliches Passwort für ein Konto
voreinstellen möchten, muss dieses Feld hier das verschlüsselte Passwort als
Zeichenkette enthalten. Sie können dazu die Prozedur crypt
benutzen.
(user-account
(name "charlie")
(group "users")
;; Ein mit SHA-512 gehashtes initiales Passwort.
(password (crypt "InitialPassword!" "$6$abc")))
Anmerkung: Der Hash dieses initialen Passworts wird in einer Datei im /gnu/store abgelegt, auf die alle Benutzer Lesezugriff haben, daher ist Vorsicht geboten, wenn Sie diese Methode verwenden.
Siehe Passphrase Storage in Referenzhandbuch der
GNU-C-Bibliothek für weitere Informationen über Passwortverschlüsselung und
Encryption in Referenzhandbuch zu GNU Guile für Informationen
über die Prozedur crypt
in Guile.
Benutzergruppen-Deklarationen sind noch einfacher aufgebaut:
(user-group (name "students"))
Dieser Typ gibt, nun ja, eine Benutzergruppe an. Es gibt darin nur ein paar Felder:
name
Der Name der Gruppe.
id
(Vorgabe: #f
)Der Gruppenbezeichner (eine Zahl). Wird er als #f
angegeben, wird
automatisch eine neue Zahl reserviert, wenn die Gruppe erstellt wird.
system?
(Vorgabe: #f
)Dieser boolesche Wert gibt an, ob es sich um eine „System“-Gruppe handelt. Systemgruppen sind solche mit einer kleinen Zahl als Bezeichner.
password
(Vorgabe: #f
)Wie, Benutzergruppen können ein Passwort haben? Nun ja, anscheinend
schon. Wenn es nicht auf #f
steht, gibt dieses Feld das Passwort der
Gruppe an.
Um Ihnen das Leben zu erleichtern, gibt es eine Variable, worin alle grundlegenden Benutzergruppen aufgeführt sind, die man erwarten könnte:
Die Liste von Basis-Benutzergruppen, von denen Benutzer und/oder Pakete erwarten könnten, dass sie auf dem System existieren. Dazu gehören Gruppen wie „root“, „wheel“ und „users“, sowie Gruppen, um den Zugriff auf bestimmte Geräte einzuschränken, wie „audio“, „disk“ und „cdrom“.
Diese Liste enthält Basis-Systembenutzerkonten, von denen Programme erwarten können, dass sie auf einem GNU/Linux-System existieren, wie das Konto „nobody“.
Beachten Sie, dass das Konto „root“ für den Administratornutzer nicht dazugehört. Es ist ein Sonderfall und wird automatisch erzeugt, egal ob es spezifiziert wurde oder nicht.
Nächste: Tastaturbelegung, Vorige: Swap-Speicher, Nach oben: Systemkonfiguration [Inhalt][Index]