BEZEICHNUNG¶
homectl, systemd-homed-firstboot.service - Erstellen, Entfernen,
Ändern oder Untersuchen von Home-Verzeichnissen
ÜBERSICHT¶
homectl [OPTIONEN…] {BEFEHL}
[NAME…]
BESCHREIBUNG¶
homectl kann zum Erstellen, Entfernen, Ändern oder
Untersuchen des Home-Verzeichnisses eines Benutzers verwandt werden. Es ist
die primäre Befehlsschnittstelle für
systemd-homed.service(8), der die Home-Verzeichnisse von Benutzern
verwaltet.
Durch systemd-homed.service verwaltete Home-Verzeichnisse sind
eigenständig und enthalten daher den kompletten Metadatensatz des
Benutzers im Speicher selbst, wodurch sie leicht zwischen Maschinen migriert
werden können. Insbesondere beschreibt ein Home-Verzeichnis einen
zugehörigen Benutzerdatensatz und jeder von systemd-homed.service
verwaltete Benutzerdatensatz impliziert auch die Existenz und die Kapselung
eines Home-Verzeichnisses. Das Benutzerkonto und Home-Verzeichnis werden zum
gleichen Konzept.
Die folgenden zugrundeliegenden Speichermechanismen werden
unterstützt:
•Ein individuelles LUKS2-verschlüsseltes
Loopback-Gerät für jeden Benutzer, gespeichert in /home/*.home.
Bei der Anmeldung wird das in dieser Datei befindliche Dateisystem
eingehängt, nachdem der LUKS2-verschlüssselte Datenträger
angehängt wurde. Das Benutzerpasswort ist identisch zur
Verschlüsselungspassphrase des LUKS2-Datenträgers. Daher ist
ohne vorherige Benutzerauthentifizierung kein Datenzugriff möglich,
selbst für den Systemadministrator. Dieser Speichermechanismus stellt
die stärkste Datensicherheit bereit und wird daher empfohlen.
•Ähnlich aber das mit LUKS2
verschlüsselte Dateisystem befindet sich auf regulären
Blockgeräten, wie einem USB-Speichermedium. In diesem Modus
können Home-Verzeichnisse samt sämtlichen Metadaten bequem
zwischen Maschinen einfach durch Einstecken des USB-Mediums in verschiedene
Systeme zu verschiedenen Zeitpunkten migriert werden.
•Ein mit »fscrypt«
verschlüsseltes Verzeichnis auf Dateisystemen, die dies
unterstützen (derzeit ist dies primär »ext4«),
befindlich in /home/*.homedir. Dieser Mechanismus stellt auch
Verschlüsselung bereit, allerdings deutlich schwächere als
LUKS2, und der Großteil der Dateisystemmetadaten ist nicht
geschützt. Derzeit erlaubt dies nach der Erstellung des
Home-Verzeichnisses auch keine Änderung des Benutzerpasswortes.
•Ein »btrfs«-Teildatenträger
für jeden Benutzer, auch in /home/*.homedir befindlich. Dies stellt
keine Verschlüsselung, aber gute Kontingent-Unterstützung
bereit.
•Ein reguläres Verzeichnis für jeden
Benutzer, auch unter /home/*.homedir befindlich. Dies stellt keine
Verschlüsselung bereit, ist aber eine auf allen Maschinen
verfügbare geeignete Rückfalloption, selbst wenn die
Unterstützung für LUKS2, »fscrypt« oder
»btrfs« nicht verfügbar ist.
•Eine individuelle Windows-Dateifreigabe (CIFS)
für jeden Benutzer.
Beachten Sie dass systemd-homed.service und homectl keine
mit useradd(8) und ähnlichen Werkzeugen erstellten
»klassischen« UNIX-Benutzerkonten verwalten. Insbesondere ist
diese Funktionalität nicht zur Verwaltung von Systembenutzern (d.h.
Benutzern mit UID unterhalb 1000) geeignet und ausschließlich
für reguläre (»menschliche«) Benutzer
gedacht.
Beachten Sie, dass mittels systemd-homed.service verwaltete
Benutzer/Home-Verzeichnisse nicht in /etc/passwd und ähnlichen
Dateien auftauchen, sie werden mittels Glibc NSS während der Laufzeit
künstlich erzeugt. Sie sind daher mit dem Werkzeug getent(1)
auflösbar und können hierdurch aufgezählt werden.
Dieses Werkzeug hat eine direkte Schnittstelle zu
systemd-homed.service und kann für das von ihm verwaltete
Home-Verzeichnis bestimmte Befehle ausführen. Da jedes auf diese
Weise verwaltete Home-Verzeichnis auch einen JSON-Benutzer- und
-Gruppendatensatz definiert, können Home-Verzeichnisse auch mittels
userdbctl(1) untersucht und aufgezählt werden.
Durch systemd-homed.service verwaltete Dienste sind normalerweise
in einem von zwei Zuständen oder in einem Übergangszustand
zwischen diesen: wenn »aktiv«, dann sind sie eingehängt
und nicht gesperrt und das System und dessen Programme können darauf
zugreifen; wenn »inaktiv«, dann sind sie nicht
eingehängt und auf sie kann nicht zugegriffen werden. Die Aktivierung
geschieht automatisch beim Anmelden des Benutzers und kann normalerweise nur
durch Eingabe eines Passworts (oder eines anderen
Authentifizierungsmerkmals) abgeschlossen werden. Deaktivierung passiert
nach der vollständigen Abmeldung des Benutzers. Ein Home-Verzeichnis
bleibt aktiv, solange der Benutzer mindestens einmal angemeldet ist, d.h.
dass er mindestens eine Anmeldesitzung hat. Wenn sich der Benutzer ein
zweites Mal simultan anmeldet, bleibt das Home-Verzeichnis aktiv. Es wird
erst deaktiviert, nachdem die letzte Sitzung des Benutzers endete.
OPTIONEN¶
Die folgenden allgemeinen Optionen werden verarbeitet (weitere
Optionen, die die verschiedenen Eigenschaften des durch
systemd-homed.service verwalteten Benutzerdatensatzes beschreiben, sind
weiter unten dokumentiert):
--identity=DATEI
Liest den JSON-Datensatz des Benutzers aus der
angegebenen Datei. Falls »-« übergeben wird, wird der
Benutzerdatensatz aus der Standardeingabe gelesen. Das bereitgestellte
JSON-Objekt muss der in
JSON-Benutzerdatensätze[1] angegebenen
Struktur folgen. Diese Option kann mit den nachfolgend beschriebenen Befehlen
create und
update zusammen verwandt werden, wodurch die
Konfiguration des Benutzerdatensatzes direkt in JSON ermöglicht wird,
statt die einzelnen Benutzerdatensatzeigenschaften einzeln zu setzen (siehe
unten).
Hinzugefügt in Version 245.
--json=FORMAT, -j
Steuert, ob die Ausgabe im JSON-Format erfolgt, falls der
Befehl
inspect verwandt wird (siehe unten). Akzeptiert entweder
»pretty«, »short« oder »off«. Falls
»pretty«, werden Leerzeichen und Zeilenumbrüche in die
Ausgabe eingefügt, um die JSON-Daten für menschliche Augen
lesbarer darzustellen. Falls »short«, wird aller
überflüssiger Leerraum entfernt. Falls »off« (die
Vorgabe), wird die Benutzer-Information nicht im JSON-Format sondern in
freundlicher, für Menschen gedachter Formatierung dargestellt. Die
Option
-j wählt beim interaktiven Betrieb »pretty«
und andernfalls »short« aus.
Hinzugefügt in Version 245.
--export-format=FORMAT, -E, -EE
Wird dies zusammen mit dem Unterbefehl
inspect im
JSON-Modus (siehe oben) verwandt, kann dies zum Unterdrücken bestimmter
Aspekte des JSON-Benutzerdatensatzes in der Ausgabe verwandt werden.
Insbesondere falls das Format »stripped« verwandt wird, werden
die Zusammenhalte- und Laufzeitfelder des Datensatzes entfernt. Falls das
Format »minimal« verwandt wird, wird auch die kryptographische
Signatur entfernt. Falls das Format »fully« verwandt wird, wird
der komplette JSON-Datensatz angezeigt (dies ist die Vorgabe). Diese Option
ist zum Kopieren eines bestehenden Benutzerdatensatzes auf ein anderes System
nützlich, um dort einen ähnlichen Benutzer mit den gleichen
Einstellungen zu erstellen. Insbesondere kann »
homectl inspect -EE |
ssh root@anderessystem homectl create -i-« als einfache
Befehlszeile zur Replizierung eines Benutzers auf einen anderen Rechner
verwandt werden.
-E ist äquivalent zu
-j
--export-format=stripped,
-EE zu
-j --export-format=minimal.
Beachten Sie, dass im Modus »stripped« erlangte
Benutzerdatensätze beim Replizieren die ursprüngliche
kryptographische Signatur beibehalten und daher nur verändert werden
können, wenn der private Schlüssel für deren
Aktualisierung auf der Zielmaschine verfügbar ist. Bei der Replizierung
im Modus »minimal« wird während der Replizierung die
Signatur entfernt und daher wird der Datensatz implizit mit dem
Schlüssel der Zielmaschine signiert und kann dort aktualisiert werden,
ohne dass ein privater Schlüssel repliziert werden muss.
Hinzugefügt in Version 245.
--offline
Versucht nicht, die Kopie des Benutzerdatensatzes und
Blob-Verzeichnisses zu aktualisieren, die innerhalb des Home-Bereichs
eingebettet ist. Dies erlaubt Aktionen auf Home-Bereichen, die nicht vorhanden
sind oder ohne die Notwendigkeit, sich als der Benutzer, der verändert
wird, zu authentifizieren.
Hinzugefügt in Version 256.
--key-name=
Gibt bei der Verwendung mit dem Befehl
add-signing-key den Namen an oder setzt ihn außer Kraft, unter
dem der öffentliche Schlüssel gespeichert werden soll, der
hinzugefügt wird. Der angegebene Name kann frei ausgewählt
werden, aber muss die Endung ».public« tragen. Falls diese
Option nicht verwandt wird, wird der Name vom angegebenen Dateinamen
abgeleitet. Falls der Schlüssel aus der Standardeingabe gelesen wird,
ist diese Option verpflichtend, um einen geeigneten Namen für den
hinzuzufügenden Schlüssel bereitzustellen.
Hinzugefügt in Version 258.
--seize=
Akzeptiert ein logisches Argument. Bei der Verwendung mit
create oder
register steuert es, ob kryptographische Signaturen
von den bereitgestellten JSON-Benutzerdatensätzen entfernt werden
sollen. Diese haben den Effekt, das sie stattdessen mit dem lokalen
Signaturschlüssel (local.public) unterschrieben werden. Falls der
Schalter auf »true« gesetzt wird, werden hinzugefügte
Benutzerdatensätze daher lokal verwaltet (und können somit lokal
verändert werden). Wird es dagegen auf »false« gesetzt,
bleiben die Benutzerdatensätze von ihrem Ursprung verwaltet und
gehören ihm auch (und können daher auch nicht lokal
verändert werden). Dieser Schalter ist für
create
standardmäßig »true« und »false«
für
register.
Hinzugefügt in Version 258.
--match=, -A, -N, -T
Akzeptiert entweder »this«,
»other«, »any« oder »auto«. Einige
Benutzerdatensatzeinstellungen können definiert werden, so dass sie nur
auf bestimmte Maschinen passen oder alle Maschinen außer einer oder
alle Maschinen. Mit diesem Schalter ist es möglich zu steuern, auf
welche Maschinen die Einstellungen angewandt werden sollen, die auf der
Befehlszeile danach erscheinen. Falls »this« angegeben ist, wird
die Einstellung nur auf das lokale System angewandt werden (positiver
Treffer), falls »other«, wird es auf alle Maschinen außer
dem lokalen System angewandt werden (negativer Treffer), falls
»any«, wird es auf alle System angewandt werden (außer es
gibt eine passende positive oder negative maschinenbezogene Einstellung).
Falls »auto«, wird die standardmäßige Logik
zurückgeliefert: ob eine Einstellung standardmäßig auf
das lokale System oder alle Systeme angewandt wird, hängt von der in
Frage stehenden Option ab.
Beachten Sie, dass nur einige Einstellungen der
Benutzerdatensätze mittels solcher Bedingungen behandelt werden
können. Für die anderen hat diese Option keine Auswirkung und
wird ignoriert. Diese Option kann mehrfach in einem einzelnen Befehl
auftauchen, um Einstellungen für verschiedene Treffer auf den
gleichen Benutzerdatensatz bedingt anzuwenden. Details dazu, welche
Einstellungen mit solchen maschinenbezogenen Abgleichen verwandt werden
können (und welche nicht) finden Sie in
JSON-Benutzerdatensätze[1].
-A ist eine Abkürzung für --match=any,
-T ist kurz für --match=this und -N ist kurz
für --match=other.
Es folgt ein beispielhafter Aufruf, der das Speicherfeld auf
»luks« auf dem lokalen System setzt, aber auf
»cifs« auf allen anderen:
# homectl update lennart -T --storage=luks -N --storage=cifs
Hinzugefügt in Version 258.
-H, --host=
Führt die Aktion aus der Ferne aus. Geben Sie den
Rechnernamen oder einen Benutzernamen und Rechnernamen (getrennt durch
»@«) an, zu dem verbunden werden soll. Dem Rechnernamen darf
optional ein Port, auf dem SSH auf Anfragen wartet, getrennt durch
»:« und dann ein Container-Name, abgetrennt durch
»/«, folgen, womit direkt zu einem bestimmten Container auf dem
angegebenen Rechner verbunden wird. Dies verwendet SSH, um mit der
Maschinen-Verwalterinstanz auf dem Rechner in der Ferne zu kommunizieren.
Container-Namen dürfen mit machinectl -H RECHNER
aufgezählt werden. Setzen Sie IPv6-Adressen in Klammern.
-M, --machine=
Führt die Aktion in einem lokalen Container aus.
Geben Sie den Namen des Containers an, zu dem verbunden werden soll. Optional
kann diesem ein Benutzername, abgetrennt durch ein »@«-Zeichen,
als der verbunden werden soll, vorangestellt werden. Falls die besondere
Zeichenkette ».host« anstelle des Container-Names verwandt wird,
wird eine Verbindung zu dem lokalen System aufgebaut (das ist nützlich,
um sich zu dem Benutzerbus eines bestimmten Benutzers zu verbinden:
»--user --machine=lennart@.host«. Falls die
»@«-Syntax nicht verwandt wird, wird die Verbindung als Benutzer
»root« vorgenommen. Falls die »@«-Syntax verwandt
wird, kann entweder die linke oder die rechte Seite fortgelassen werden (aber
nicht beide). In diesem Fall wird der lokale Benutzername und
».host« angenommen.
--no-pager
Leitet die Ausgabe nicht an ein Textanzeigeprogramm
weiter.
--no-legend
Gibt die Legende nicht aus, d.h. die Spaltenköpfe
und die Fußzeile mit Hinweisen.
--no-ask-password
Befragt den Benutzer nicht für Authentifizierung
für privilegierte Aktionen.
-h, --help
Zeigt einen kurzen Hilfetext an und beendet das
Programm.
--version
Zeigt eine kurze Versionszeichenkette an und beendet das
Programm.
ALLGEMEINE BENUTZERDATENSATZEIGENSCHAFTEN¶
Die folgenden Optionen steuern verschiedene Eigenschaften der
Benutzerdatensätze/Home-Verzeichnisse, die systemd-homed.service
verwaltet. Diese Schalter können zusammen mit den Befehlen
create und update zur Konfiguration verschiedener Aspekte des
Home-Verzeichnisses und des Benutzerkontos verwandt werden:
--real-name=NAME, -c NAME
Der echte Name des Benutzers. Dies entspricht dem Feld
GECOS in klassischen UNIX-NSS-Datensätzen.
Hinzugefügt in Version 245.
--realm=BEREICH
Der Bereich des Benutzers. Der Bereich ordnet einen
Benutzer einer bestimmten Organisation oder Installation zu und erlaubt es,
Benutzer gleichen Namens zu unterscheiden, die in verschiedenen Kontexten
definiert sind. Der Bereich kann jede Zeichenkette sein, die auch als
gültiger DNS-Domain-Name funktioniert und es wird empfohlen, den
Domain-Namen der Organisation oder Installation für diesen Zweck zu
verwenden, aber dies wird weder erzwungen noch ist es notwendig. Auf jedem
System darf jeder Benutzername nur einmal vorkommen und falls ein Benutzer mit
dem gleichen Namen und Bereich erkannt wird, wird angenommen, dass es sich um
den gleichen Benutzer handelt, während Benutzer mit dem gleichen Namen,
aber anderen Bereichen als verschiedene Benutzer betrachtet werden. Beachten
Sie, dass dies bedeutet, dass zwei Benutzer, die den gleichen Namen verwenden,
aber unterschiedliche Bereiche haben, nicht auf dem gleichen System erlaubt
sind. Die Zuweisung eines Bereiches zu einem Benutzer ist optional.
Hinzugefügt in Version 245.
--alias=NAME[,NAME…]
Zusätzliche Namen für den Benutzer.
Akzeptiert einen oder mehrere, durch Kommata getrennte gültige
UNIX-Benutzernamen. Kann mehrfach verwandt werden, um mehrere Aliase zu
definieren. Ein Alias-Benutzername kann überall angegeben werden, wo
auch der primäre Benutzername angegeben wird, und er wird auf den
gleichen Benutzerdatensatz aufgelöst.
Hinzugefügt in Version 258.
--email-address=E-MAIL
Akzeptiert eine dem Benutzer zugeordnete E-Mail-Adresse.
Bei der Anmeldung wird die Umgebungsvariable
$EMAIL aus diesem Wert
initialisiert.
Hinzugefügt in Version 245.
--location=TEXT
Akzeptiert eine Ortsangabe für diesen Benutzer.
Akzeptiert Freiformtext, der von geobasierten Anwendungen auswertbar sein
kann, aber nicht muss. Beispiele:
--location="Berlin,
Deutschland" oder
--location="Erdgeschoss, Raum 3a"
Hinzugefügt in Version 245.
--icon-name=ICON
Akzeptiert den Namen eines dem Benutzer zugeordneten
Icon. Der Name folgt dem durch
Icon-Benennungs-Spezifikation[2]
definierten Schema.
Hinzugefügt in Version 245.
--home-dir=PFAD, -dPFAD
Akzeptiert einen Pfad, der als Home-Verzeichnis
für den Benutzer verwandt werden soll. Beachten Sie, dass dies der Pfad
ist, auf den das Home-Verzeichnis des Benutzers eingehängt ist,
während der Benutzer angemeldet ist. Dies ist nicht der Ort, an dem die
Daten des Benutzers tatsächlich gespeichert werden, siehe dafür
--image-path=. Falls nicht angegeben, ist die Vorgabe /home/$USER.
Hinzugefügt in Version 245.
--uid=UID
Akzeptiert eine bevorzugte numerische UNIX-UID, die
diesem Benutzer zugeordnet werden soll. Falls ein Benutzer mit einer
bestimmten UID erstellt werden soll und diese bereits von einem anderen
Benutzer auf dem lokalen System verwandt wird, dann wird die Erstellung des
Home-Verzeichnisses abgelehnt. Beachten Sie, dass
systemd-homed dem
Benutzer eine andere UID auf Systemen zuweisen kann, auf denen ein bereits
existierendes Home-Verzeichnis verwandt wird, das dort nicht erstellt wurde
und wo dort die UID bereits von einem zweiten Benutzer verwandt wird. Die
angegebene UID muss außerhalb des Bereichs für Systembenutzer
sein. Es wird empfohlen, den Bereich 60001…60513 für diesen
Zweck zu verwenden. Falls nicht angegeben, wird die UID automatisch
ausgewählt. Wird bei der Anmeldung festgestellt, dass das
Home-Verzeichnis einer anderen UID gehört, dann wird die
Eigentümerschaft des Home-Verzeichnisses und allem darunter automatisch
vor Abschluss der Anmeldung geändert.
Beachten Sie, dass das Ändern dieser Option für
bestehende Home-Verzeichnisse im Allgemeinen keine Auswirkung auf
Home-Verzeichnisse hat, die bereits lokal registriert wurden (eine lokale
Bindung haben), da die für ein Konto auf dem lokalen System
verwandte UID bestimmt wird, wenn das Home-Verzeichnis darauf erstmalig
aktiviert wird und dann wirksam bleibt, bis das Home-Verzeichnis entfernt
wird.
Beachten Sie, dass durch systemd-homed verwaltete Benutzer
immer eine ihnen zugeordnete passende Gruppe mit dem gleichen Namen sowie
eine auf die UID passende GID haben werden. Daher ist die separate
Konfiguration der GID nicht erlaubt.
Hinzugefügt in Version 245.
--member-of=GRUPPE, -G GRUPPE
Akzeptiert eine Kommata-getrennte Liste von
zusätzlichen UNIX-Gruppen, denen der Benutzer angehören soll.
Beispiel:
--member-of=wheel, um den Benutzer mit administrativen
Privilegien auszustatten. Beachten Sie, dass
systemd-homed keine
Gruppen außerhalb der Gruppe, die auf den Benutzer (Name und numerische
UID/GID) passt, verwaltet. Daher muss jede hier aufgeführte Gruppe
unabhängig registriert werden, beispielsweise mit
groupadd(8).
Alle nicht existierenden Gruppen werden ignoriert. Diese Option kann mehr als
einmal angegeben werden, dann werden alle angegebenen Gruppen kombiniert.
Falls der Benutzer derzeit Mitglied einer nicht aufgeführten Gruppe
ist, dann wird der Benutzer von der Gruppe entfernt.
Hinzugefügt in Version 245.
--capability-bounding-set=CAPABILITYS,
--capability-ambient-set=CAPABILITYS
Diese Optionen akzeptieren eine durch Leerzeichen
getrennte Liste von Prozess-Capabilitys (z.B.
CAP_WAKE_ALARM,
CAP_BLOCK_SUSPEND …), die in den Capability-Begrenzungs- und
-Umgebungs-Mengen für alle Benutzersitzungen gesetzt werden sollen.
Siehe
capabilities(7) für Details zum Capability-Konzept. Diese
Optionen können mehr als einmal verwandt werden, die angegebenen Listen
werden dann kombiniert. Falls der Parameter mit einem
»~«-Zeichen beginnt, ist die Auswirkung invertiert: die
angegebene Capability wird aus der angegebenen Menge entfernt.
Hinzugefügt in Version 254.
--access-mode=MODUS
Akzeptiert einen oktal geschriebenen UNIX-Zugriffsmodus.
Konfiguriert den Zugriffsmodus des Home-Verzeichnisses selbst. Beachten Sie,
dass dies nur beim erstmaligen Anlegen des Home-Verzeichnisses verwandt wird
und der Benutzer dieses nachträglich jederzeit ändern kann.
Beispiel:
--access-mode=0700
Hinzugefügt in Version 245.
--umask=MASKE
Akzeptiert die Zugriffsmodusmaske (in oktaler Syntax),
die auf neu erstellte Dateien und Verzeichnisse des Benutzers angewandt werden
soll (die »umask«). Falls dies gesetzt ist, steuert dies die
anfängliche Umask, die für alle Anmeldesitzungen des Benutzers
verwandt wird und die möglicherweise die Vorgaben des Systems
außer Kraft setzt.
Hinzugefügt in Version 245.
--skel=PFAD
Akzeptiert einen Dateisystempfad zu einem Verzeichnis.
Gibt das Verzeichnis mit dem Gerüst an, aus dem das Home-Verzeichnis
initialisiert werden soll. Alle Dateien und Verzeichnisse in dem angegebenen
Pfad werden in das neu erstellte Home-Verzeichnis kopiert. Falls nicht
angegeben, ist die Vorgabe /etc/skel/.
Hinzugefügt in Version 245.
--shell=SHELL
Akzeptiert einen Dateisystempfad. Gibt das bei
Terminal-Anmeldungen zu verwendende Shell-Programm an. Falls nicht angegeben,
ist die Vorgabe /bin/bash.
Hinzugefügt in Version 245.
--setenv=VARIABLE[=WERT]
Akzeptiert eine Umgebungsvariablenzuweisung, die
für alle Benutzerprozesse gesetzt werden soll. Kann mehrfach verwandt
werden, um mehrere Umgebungsvariablen zu setzen. Wenn »=« und
WERT nicht angegeben sind, wird der Wert der Variablen mit dem gleichen
Namen in der Programmumgebung verwandt.
Beachten Sie, dass eine Reihe von anderen Einstellungen auch zum
Setzen von Umgebungsvariablen des Benutzers führen,
einschließlich --email=, --timezone= und
--language=.
Hinzugefügt in Version 245.
--timezone=ZEITZONE
Akzeptiert einen Zeitzonenortsnamen, der die Zeitzone
für den angegebenen Benutzer setzt. Die Umgebungsvariable
$TZ
wird bei der Anmeldung aus diesem Wert initialisiert. Beispiel:
--timezone=Europe/Amsterdam führt zu der Umgebungsvariablen
»TZ=:Europe/Amsterdam«. (»:« wird bewusst als Teil
der Zeitzonenangabe verwandt, siehe
tzset(3).)
Hinzugefügt in Version 245.
--language=SPRACHE
Akzeptiert eine Kommata- oder Doppelpunkt-getrennte Liste
von Sprachen, die der Benutzer bevorzugt, sortiert nach absteigender
Priorität. Die Umgebungsvariablen
$LANG und
$LANGUAGE
werden bei der Anmeldung aus diesem Wert initialisiert und daher wird hier ein
Wert akzeptiert, der für diese Umgebungsvariablen geeignet ist,
beispielsweise
--language=de_DE.UTF8. Diese Option kann mehrfach
verwandt werden; dann werden die Sprachlisten aneinandergehängt.
Hinzugefügt in Version 245.
--default-area=BEREICH
Akzeptiert eine Zeichenkette, die einen
standardmäßig zu verwendenden
Home-Verzeichnis-»Bereich« identifiziert. Bereiche sind
sekundäre Home-Verzeichnisse innerhalb des primären
Home-Verzeichnisses eines Benutzers. Beim Anmelden kann ein Benutzer den
Bereich angeben, an dem er sich anmelden möchte. Dadurch wird
sichergestellt, dass die Umgebungsvariable
$HOME auf ~/Areas/ mit
angehängtem Bereichsnamen gesetzt ist.
Details zum dem Bereichs-Konzept finden Sie in
pam_systemd_home(8). Beachten Sie, dass diese Option nur die Vorgabe
definiert, die zum Anmeldezeitpunkt außer Kraft gesetzt werden
kann.
Wenn diese Option mit der leeren Zeichenkette als Wert angegeben
ist, werden alle vorher erklärten Bereiche aus dem Benutzerdatensatz
entfernt.
Hinzugefügt in Version 258.
AUTHENTIFIZIERUNGS-BENUTZERDATENSATZEIGENSCHAFTEN¶
--ssh-authorized-keys=SCHLÜSSEL
Akzeptiert entweder eine Zeile mit einem
SSH-Autorisierungsschlüssel, der mit dem Benutzerdatensatz verbunden
werden soll, oder ein »@«-Zeichen, gefolgt von einem Pfad zu
einer Datei, aus der eine oder mehrere solcher Zeilen ausgelesen werden
sollen. Auf diese Weise konfigurierte SSH-Schlüssel werden SSH zur
Verfügung gestellt, um Zugriff auf dieses Home-Verzeichnis und diesen
Benutzerdatensatz zu gewähren. Diese Option darf mehr als einmal
angegeben werden, um mehrere SSH-Schlüssel zu konfigurieren.
Hinzugefügt in Version 245.
--pkcs11-token-uri=URI
Akzeptiert eine RFC-7512-PKCS#11-URI, die einen
Sicherheits-Token referenziert (z.B. einen YubiKey oder eine PIV-SmartCard),
der in der Lage sein soll, das Benutzerkonto zu entsperren. Die
Sicherheits-Token-URI sollte einen Sicherheits-Token mit genau einem Paar aus
X.509-Zertifikat und öffentlichem Schlüssel spezifizieren. Dann
wird ein zufälliger geheimer Schlüssel erstellt, mit dem
öffentlichen Schlüssel des X.509-Zertifikates
verschlüsselt und als Teil des Benutzerdatensatzes gespeichert. Bei der
Anmeldung wird er mit dem PKCS#11-Modul entschlüsselt und dann zum
Entsperren des Kontos und der zugehörigen Ressourcen verwandt. Weiter
unten wird beschrieben, wie die Authentifizierung mit einem Sicherheits-Token
eingerichtet wird.
Statt einer gültigen PKCS#11-URI kann die besondere
Zeichenkette »list« und »auto« angegeben werden.
Falls »list« übergeben ist, wird eine kurze Tabelle
geeigneter, derzeit eingehängter PKCS#11-Hardware-Token zusammen mit
ihren URIs angezeigt. Falls »auto« übergeben ist, wird
automatisch ein geeignetes PKCS#11-Token ausgewählt (diese Aktion
schlägt fehl, falls nicht genau ein geeignetes Hardware-Token
ermittelt wird). Letztere Option ist als Abkürzung für den
häufigsten Anwendungsfall nützlich, bei dem ein einzelnes
PKCS#11-Hardware-Token eingesteckt ist.
Beachten Sie, dass viele Hardware-Sicherheits-Token sowohl
PKCS#11/PIV als auch FIDO2 mit der Erweiterung »hmac-secret«
implementieren (beispielsweise die YubiKey-Serie), wie dies von der unten
dargestellten Option --fido2-device= unterstützt wird. Beide
Mechanismen sind ähnlich leistungsfähig, obwohl FIDO2 die
modernere Technik ist. PKCS#11/PIV-Token haben den Vorteil, dass sie vor der
Authentifizierung erkannt und daher dafür verwandt werden
können, die Identität des Benutzer zur Anmeldung anzunehmen,
was FIDO2 nicht ermöglicht. PKCS#11/PIV-Geräte
benötigen im Allgemeinen eine Initialisierung (d.h. das Speichern
eines privaten/öffentlichen Schlüsselpaars auf ihnen, siehe
nachfolgendes Beispiel), bevor sie verwandt werden können;
FIDO2-Sicherheits-Token benötigen dies im Allgemeinen nicht und
funktionieren sofort.
Hinzugefügt in Version 245.
--fido2-credential-algorithm=ZEICHENKETTE
Gibt den bei der Erstellung von Zugangsberechtigungen zu
verwendenden COSE-Algorithmus an. Der Vorgabewert ist »es256«.
Unterstützte Werte sind »es256«, »s256« und
»eddsa«.
»es256« bezeichnet ECDSA über NIST P-256 mit
SHA-256. »rs256« bezeichnet 2048-bit RSA mit
PKCS#1.5-Auffüllung und SHA-256. »eddsa« bezeichnet
EDDSA über Curve25519 mit SHA-512.
Beachten Sie, dass Ihr Authentikator sich entscheiden
könnte, nicht alle Algorithmen zu unterstützen.
Hinzugefügt in Version 251.
--fido2-device=PFAD
Akzeptiert einen Pfad zu einem
Linux-»hidraw«-Gerät (z.B. /dev/hidraw1), der sich auf
ein FIDO2-Sicherheits-Token bezieht, das die Erweiterung
»hmac-secret« implementiert. Ein zufälliger Salt-Wert
wird auf dem Rechner erstellt und an das FIDO2-Gerät übergeben,
welches den HMAC-Hash mittels eines internen geheimen Schlüssel aus dem
Salt berechnet. Das Ergebnis wird dann als Schlüssel zum Entsperren des
Benutzerkontos verwandt. Der zufällige Salt wird im Benutzerdatensatz
aufgenommen, so dass er wieder an den FIDO2-Token übergeben werden
kann, wannimmer Authentifizierung benötigt wird.
Statt eines einzelnen Pfades zu einem
FIDO2-»hidraw«-Gerät kann die besondere Zeichenkette
»list« und »auto« angegeben werden. Falls
»list« übergeben ist, wird eine kurze Tabelle
geeigneter erkannter FIDO2-Geräte angezeigt. Falls
»auto« übergeben ist, wird automatisch ein geeignetes
FIDO2-Token ausgewählt, falls genau ein geeignetes Hardware-Token
ermittelt wird. Letztere Option ist als Abkürzung für den
häufigsten Anwendungsfall nützlich, bei dem ein einzelnes
FIDO2-Hardware-Token eingesteckt ist.
Beachten Sie, dass FIDO2-Geräte, die für die Option
geeignet sind, die Erweiterung »hmac-secret« implementieren
müssen. Die meisten aktuellen Geräte (wie die YubiKey-5-Serie)
machen dies. Falls die Erweiterung nicht implementiert ist, kann das
Gerät nicht zum Entsperren eines Home-Verzeichnisses verwandt
werden.
Das FIDO2-Gerät kann nachfolgend durch Setzen des
Gerätepfades auf die leere Zeichenkette entfernt werden (z.B.
homectl update $USER --fido2-device="").
Beachten Sie, dass viele Hardware-Sicherheits-Token sowohl FIDO2
als auch PKCS#11/PIV implementieren (und daher mit entweder
--fido2-device= oder --pkcs11-token-uri= verwandt werden
können). Eine Diskussion finden Sie weiter oben.
Hinzugefügt in Version 246.
--fido2-with-client-pin=LOGISCH
Steuert beim Registrieren eines FIDO2-Sicherheits-Tokens
ob der Benutzer beim Entsperren des Kontos eine PIN eingeben muss (die
FIDO2-Funktionalität »clientPin«).
Standardmäßig »yes«. (Beachten Sie: Diese
Einstellung ist wirkungslos, falls der Sicherheits-Token die
Funktionalität »clientPin« überhaupt nicht
unterstützt oder das Aktivieren oder Deaktivieren nicht erlaubt.)
Hinzugefügt in Version 249.
--fido2-with-user-presence=LOGISCH
Steuert beim Registrieren eines FIDO2-Sicherheits-Tokens
ob der Benutzer beim Entsperren des Kontos seine Anwesenheit nachweisen muss
(den Token berühren, die FIDO2-Funktionalität
»up«). Standardmäßig »yes«.
(Beachten Sie: Diese Einstellung ist wirkungslos, falls der Sicherheits-Token
die Funktionalität »up« überhaupt nicht
unterstützt oder das Aktivieren oder Deaktivieren nicht erlaubt.)
Hinzugefügt in Version 249.
--fido2-with-user-verification=LOGISCH
Steuert beim Registrieren eines FIDO2-Sicherheits-Tokens
ob Benutzerüberprüfung beim Entsperren des Kontos verlangt wird
(die FIDO2-Funktionalität »uv«).
Standardmäßig »no«. (Beachten Sie: Diese
Einstellung ist wirkungslos, falls der Sicherheits-Token die
Funktionalität »uv« überhaupt nicht
unterstützt oder das Aktivieren oder Deaktivieren nicht erlaubt.)
Hinzugefügt in Version 249.
--recovery-key=LOGISCH
Akzeptiert ein logisches Argument. Falls aktiviert, wird
ein Wiederherstellungsschlüssel für dieses Konto konfiguriert.
Ein Wiederherstellungsschlüssel ist ein Computer-erstellter
Zugangsschlüssel, der dazu verwandt werden kann, wieder Zugriff auf ein
Konto zu erlangen, falls das Passwort vergessen oder der
Authentifizierungs-Token verloren wurde. Der Schlüssel wird erstellt
und am Bildschirm dargestellt und sollte ausgedruckt oder anderweitig an einen
sicheren Ort transportiert werden. Ein Wiederherstellungsschlüssel kann
anstatt eines regulären Passworts eingegeben werden, um das Konto zu
entsperren.
Hinzugefügt in Version 247.
BLOB-VERZEICHNIS-BENUTZERDATENSATZEIGENSCHAFTEN¶
--blob=PFAD, -b PFAD,
--blob=DATEINAME=PFAD, -b
DATEINAME=PFAD
Akzeptiert entweder einen Verzeichnispfad oder einen
Dateinamen, gefolgt von einem Dateipfad. Falls nur ein Verzeichnispfad
bereitgestellt wird, wird das gesamte Blob-Verzeichnis des Benutzers durch den
angegebenen Pfad ersetzt. Beachten Sie, dass diese Ersetzung
durchgeführt wird, bevor dateibezogene Änderungen angewandt
werden, was bedeutet, dass dateibezogene Änderungen auf dem angegebenen
Verzeichnis angewandt werden. Falls ein Dateiname und ein Dateipfad angegeben
sind, dann wird die einzelne angegebene Blob-Datei durch den Pfad
überschrieben. Falls komplett leer, wird das komplette Blob-Verzeichnis
leergeräumt (wodurch auch alle vorhergehenden Blob-bezogenen Schalter
bis zu diesem Punkt zurückgesetzt werden). Falls ein Dateiname
angegeben ist, aber der entsprechende Pfad leer ist, wird die einzelne Datei
aus dem Blob-Verzeichnis gelöscht. Alle Änderungen erfolgen in
temporären Kopien der angegebenen Dateien in Verzeichnissen, was
bedeutet, dass die auf der Befehlszeile angegebenen Originale nicht
verändert werden. Siehe
Benutzerdatensatz-Blob-Verzeichnisse[3]
für weitere Informationen über Blob-Verzeichnisse.
Hinzugefügt in Version 256.
--avatar=PFAD,
--login-background=PFAD
Akzeptiert einen Dateipfad. Falls gesetzt, wird die
angegebene Datei zum Überschreiben der entsprechenden Datei in dem
Blob-Verzeichnis des Benutzers verwandt. Falls leer, wird die entsprechende
Datei aus dem Blob-Verzeichnis gelöscht. Im wesentlichen sind diese
Optionen Abkürzungen für
--blob=DATEINAME=PFAD für die bekannten, in
Benutzerdatensatz-Blob-Verzeichnisse[3] definierten Blob-Verzeichnisse.
Hinzugefügt in Version 256.
KONTOVERWALTUNG-BENUTZERDATENSATZEIGENSCHAFTEN¶
--locked=LOGISCH
Akzeptiert ein logisches Argument. Gibt an, ob dieses
Benutzerkonto gesperrt sein soll. Falls true, werden Anmeldungen an diesem
Konto verhindert, falls false (die Vorgabe), werden sie erlaubt
(natürlich nur, falls die Autorisierung auch erfolgreich ist).
Hinzugefügt in Version 245.
--not-before=ZEITSTEMPEL,
--not-after=ZEITSTEMPEL
Diese Optionen akzeptieren eine Zeitstempelzeichenkette
in dem in
systemd.time(7) dokumentierten Format und konfigurieren
Zeitpunkte, bevor denen oder nach denen Anmeldungen an diesem Konto nicht
erlaubt sind.
Hinzugefügt in Version 245.
--rate-limit-interval=SEK,
--rate-limit-burst=ANZAHL
Konfiguriert für diesen Benutzer eine
Ratenbegrenzung für Authentisierungsversuche. Falls der Benutzer
versucht, sich auf dem bestimmten System in dem angegebenen Zeitinvervall
häufiger als die angegebenen Anzahl zu authentifizieren, wird die
Anmeldung abgelehnt, bis das Zeitintervall abgelaufen ist. Die Vorgabe ist 10
mal pro eine Minute.
Hinzugefügt in Version 245.
--password-hint=TEXT
Akzeptiert einen Passworttipp, der zusammen mit dem
Benutzerdatensatz gespeichert wird. Diese Zeichenkette ist so gespeichert,
dass nur privilegierte Benutzer und der Benutzer selbst darauf zugreifen
können. Andere Benutzer können sie nicht abfragen. Beispiel:
--password-hint="Der Name meines ersten Haustieres".
Hinzugefügt in Version 245.
--enforce-password-policy=LOGISCH, -P
Akzeptiert ein logisches Argument. Konfiguriert, ob die
Passwortrichtlinie des Systems in Hinblick auf Qualität und
Stärke des ausgewählten Passworts für diesen Benutzer
erzwungen werden soll. Standardmäßig ein.
-P ist die
Kurzform von
--enforce-password-policy=no.
Hinzugefügt in Version 245.
--password-change-now=LOGISCH
Akzeptiert ein logisches Argument. Falls true, wird der
Benutzer bei der nächsten Anmeldung gebeten, sein Passwort zu
ändern.
Hinzugefügt in Version 245.
--password-change-min=ZEIT,
--password-change-max=ZEIT,
--password-change-warn=ZEIT,
--password-change-inactive=ZEIT
Jede dieser Optionen akzeptiert eine
Zeitdauerspezifikation als Argument (in dem in
systemd.time(7)
definierten Format) und konfiguriert verschiedene Aspekte der
Passwortablaufrichtlinie des Benutzers. Insbesondere konfiguriert
--password-change-min=, wieviel Zeit vergehen muss, nachdem das
Passwort geändert wurde, bevor es erneut geändert werden darf.
Falls der Benutzer versucht, sein Passwort vor Ablauf dieser Zeit zu
ändern, wird dieser Versuch abgelehnt.
--password-change-max=
konfiguriert, wie schnell nach der Änderung des Passworts dieses
abläuft und wieder geändert werden muss. Nach dieser Zeit kann
eine Anmeldung nur fortfahren, nachdem das Passwort geändert worden
ist.
--password-change-warn= konfiguriert, wie viel früher als
die mit
--password-change-max= konfigurierte Zeit der Benutzer beim
Anmelden gewarnt wird, sein Passwort zu ändern, da es bald ablaufen
wird. Schließlich konfiguriert
--password-change-inactive= die
Zeit, die ablaufen muss, nachdem das Passwort abgelaufen ist, bis der Benutzer
sich nicht mehr anmelden oder sein Passwort ändern darf. Beachten Sie,
dass diese Optionen nur die Passwortauthentifizierung und nicht andere Formen
der Authentifizierungen, wie beispielsweise PKCS#11-basierte Authentifizierung
mit Sicherheitstoken, betreffen.
Hinzugefügt in Version 245.
RESSOURCENVERWALTUNG-BENUTZERDATENSATZEIGENSCHAFTEN¶
--disk-size=BYTE
Akzeptiert entweder eine Größe in Byte als
Argument (möglicherweise einschließlich der gewöhnlichen
Endungen K, M, G … für 1024-basierte Werte), einen Prozentwert
oder die besonderen Zeichenketten »min« oder »max«
und konfiguriert den dem Benutzer zuzuweisenden Plattenplatz. Falls ein
Prozentwert angegeben ist (d.h. dem Argument wird »%«
angehängt), wird dieser relativ zum verfügbaren Plattenplatz des
zugrundeliegenden Dateisystems betrachtet. Falls als »min«
angegeben, dann weist es den minimalen Plattenplatz zu, der durch die
Randbedingungen des zugrundeliegenden Dateisystems und anderer
Beschränkungen erlaubt ist. Falls als »max« angegeben,
weist es den maximal verfügbaren Plattenplatz zu. Falls das
LUKS2-Backend verwandt wird, konfiguriert dies die Größe der
Loopback-Datei und des darin enthaltenen Dateisystems. Für andere
Speicher-Backends konfiguriert dies Plattenkontingente mittels der nativen
Kontingent-Logik des Dateisystems, falls verfügbar. Falls nicht
angegeben, standardmäßig 85% des verfügbaren
Plattenplatzes für das LUKS2-Backend und auf keine Kontingente
für die anderen.
Hinzugefügt in Version 245.
--nice=NICE
Akzeptiert die numerische Zeitplanungspriorität
(»Nice-Stufe«), die auf Prozesse des Benutzers zum
Anmeldezeitpunkt angewandt werden soll. Akzeptiert einen numerischen Wert im
Bereich -20 (höchste Priorität) bis 19 (niedrigste
Priorität).
Hinzugefügt in Version 245.
--rlimit=BEGRENZUNG=WERT[:WERT]
Erlaubt die Konfiguration von
Ressourcenbeschränkungen für Prozesse dieses Benutzers, siehe
getrlimit(2) für Details. Akzeptiert einen
Ressourcenbeschränkungsnamen (z.B. »LIMIT_NOFILE«),
gefolgt von einem Gleichheitszeichen, gefolgt von einer numerischen
Beschränkung. Optional kann ein zweiter, durch einen Doppelpunkt
abgetrennter numerischer Beschränkungswert angegeben werden. Falls zwei
angegeben sind, beziehen sich diese auf die weichen bzw. harten
Beschränkungen. Falls nur eine Beschränkung angegeben ist, setzt
diese Einstellung beide Beschränkungen auf einmal.
Hinzugefügt in Version 245.
--tasks-max=PROZESSE
Akzeptiert eine von 0 verschiedene Ganzzahl als Argument.
Konfiguriert die maximale Anzahl an Threads (hierbei ist jeder Prozess
mindestens ein Thread), die der Benutzer zu einem Zeitpunkt haben darf. Diese
Begrenzung gilt für alle Prozesse, die mit Fork von der Benutzersitzung
abstammen, selbst wenn sie die Benutzeridentität mit
su(1) oder
ähnlichen Werkzeugen ändern. Verwenden Sie
--rlimit=LIMIT_NPROC=, um eine Beschränkung für die
Anzahl der tatsächlich unter der UID des Benutzers laufenden Prozesse
zu setzen, wobei damit die Kindprozesse, die ihre Identität
geändert haben könnten, ausgeschlossen werden. Dies steuert die
Einstellung
TasksMax= der benutzerbezogenen Systemd-Scheiben-Unit
user-$UID.slice. Siehe
systemd.resource-control(5) für weitere
Details.
Hinzugefügt in Version 245.
--memory-high=BYTE,
--memory-max=BYTE
Setzt eine Begrenzung für den Speicher, den ein
Benutzer zu einem Zeitpunkt auf einem System verwenden darf, in Byte (die
gewöhnlichen Endungen K, M, G … zur Basis 1024 werden
unterstützt). Dies schließt sämtlichen Speicher ein, der
vom Benutzer verwandt wird, sowie den aller Prozesse, die unter den
Benutzerberechtigungen dieses Benutzer mit Fork gestartet wurden. Dies steuert
die Einstellungen
MemoryHigh= und
MemoryMax= der
benutzerbezogenen Systemd-Scheiben-Unit user-$UID.slice. Siehe
systemd.resource-control(5) für weitere Details.
Hinzugefügt in Version 245.
--cpu-weight=GEWICHT,
--io-weight=GEWICHT
Setzt CPU- und E/A-Scheduling-Gewichte für die
Prozesse des Benutzers, einschließlich der mit Fork gestarteten
Prozesse des Benutzers, die die Benutzerberechtigungen geändert haben.
Akzeptiert einen numerischen Wert im Bereich 1…10000. Dies steuert die
Einstellungen
CPUWeight= und
IOWeight= der benutzerbezogenen
Systemd-Scheiben-Unit user-$UID.slice. Siehe
systemd.resource-control(5) für weitere Details.
Hinzugefügt in Version 245.
SPEICHER-BENUTZERDATENSATZEIGENSCHAFTEN¶
--tmp-limit=BYTE, --tmp-limit=PROZENT,
--dev-shm-limit=BYTE,
--dev-shm-limit=PROZENT
Steuert die benutzerbezogenen Kontingente (Quota) auf
/tmp/ und /dev/shm/, die beim Anmelden eines Benutzers angewandt werden.
Akzeptiert entweder einen absoluten Wert in Byte (mit den normalen Endungen K,
M, G, T zur Basis 1024) oder einen Prozentwert. Im letzteren Fall wird die
Begrenzung relativ zu der Größe des entsprechenden Dateisystems
angewandt. Die Beschränkung wird nur angewandt, falls das relevante
Dateisystem »tmpfs« ist. Andernfalls hat sie keine Auswirkung.
Beachten Sie, dass ein Standardkontingent weiterhin durchgesetzt werden
könnte (typischerweise 80%), falls diese Optionen nicht verwandt
werden.
Hinzugefügt in Version 258.
--storage=SPEICHER
Wählt den für dieses Home-Verzeichnis zu
verwendenden Speichermechanismus aus. Akzeptiert entweder
»luks«, »fscrypt«, »directory«,
»subvolume« oder »cifs«. Details über diese
Mechanismen sind weiter oben beschrieben. Falls ein neues Home-Verzeichnis
erstellt wird und der Speichertyp nicht besonders angegeben ist, dann
definiert
homed.conf(5), welcher Speichermechanismus
standardmäßig zu benutzen ist.
Hinzugefügt in Version 245.
--image-path=PFAD
Akzeptiert ein Dateisystempfad. Konfiguriert, wo das
Home-Verzeichnis des Benutzers abgelegt werden soll. Falls LUKS2-Speicherung
gewählt wird, bezieht sich dies auf den Pfad zur Loopback-Datei,
andernfalls auf den Pfad zum Home-Verzeichnis (das sich in /home/ oder einem
anderweitig zugreifbaren Dateisystem befinden kann). Falls nicht angegeben,
ist die Vorgabe /home/$USER.home beim Einsatz des LUKS-Speichermechanismus und
/home/$USER.homedir für alle anderen Speichermechanismen. Für
den Speichermechanisums »cifs« ist er nicht definiert. Um den
LUKS2-Speichermechanismus auf einem regulären Blockgerät zu
verwenden (beispielsweise einem USB-Stick), übergeben Sie hier den Pfad
zu dem Blockgerät. Es ist nicht erlaubt, hier den Pfad zu einem
Verzeichnis anzugeben, wenn ein LUKS2-Speicher verwandt wird. Entsprechend ist
die Angabe zu einer normalen Datei oder einem Geräteknoten nicht
erlaubt, falls eines der anderen Speicher-Backends verwandt wird.
Hinzugefügt in Version 245.
--drop-caches=LOGISCH
Schreibt beim Abmelden automatisch die
Betriebssystem-Dateizwischenspeicher raus. Dies ist in Kombination mit dem
fscrypt-Speicher-Backend nützlich, um sicherzustellen, dass das
Betriebssystem nach dem Abmelden keine entschlüsselten Versionen der
Dateien und Verzeichnisse im Speicher (und zugreifbar) behält. Diese
Option wird auch auf anderen Backends unterstützt, sollte dort aber
keinen Vorteil bringen. Standardmäßig »off«,
außer falls das ausgewählte Speicher-Backend fscrypt ist, wo es
standardmäßig eingeschaltet ist. Beachten Sie, dass das
Rausschreiben von Betriebssystemzwischenspeichern die Leistung des
Betriebssystems kurz nach dem Abmelden negativ beeinflusst.
Hinzugefügt in Version 250.
LUKS-SPEICHER-BENUTZERDATENSATZEIGENSCHAFTEN¶
--fs-type=TYP
Wird der LUKS2-Speichermechanismus verwandt, konfiguriert
dies den Dateisystemtyp, der im Home-Verzeichnis des LUKS2-Containers verwandt
werden soll. Entweder »btrfs«, »ext4« oder
»xfs«. Falls nicht angegeben, definiert
homed.conf(5),
welcher Dateisystemtyp standardmäßig zu benutzen ist. Beachten
Sie, dass der Einsatz von »xfs« nicht empfohlen wird, da dessen
Unterstützung für die Größenveränderung des
Dateisystems zu eingeschränkt ist.
Hinzugefügt in Version 245.
--luks-discard=LOGISCH
Wird der LUKS2-Speichermechanismus verwandt, konfiguriert
dies, ob die Funktionalität »discard« des Dateisystems
aktiviert wird. Falls aktiviert, wird das Dateisystem, welches sich innerhalb
des LUKS2-Datenträgers befindet, Informationen über leere
Blöcke an das draunterliegende LUKS2 und das Loopback-Gerät
melden, um sicherzustellen, dass leerer Platz im Home-Verzeichnis wieder an
das zugrundeliegende Dateisystem unterhalb des LUK2-Laufwerks
zurückgegeben wird, wodurch eine »spärliche«
Loopback-Datei erhalten wird. Diese Option ist größtenteils
standarmäßig aus, da dieses ermöglicht, mehr Platz als
vorhanden in Home-Verzeichnissen zu übergeben, wodurch E/A-Fehler
resultieren, falls das zugrundeliegende Dateisystem voll wird während
das obere Dateisystem einen weiteren Block belegen möchte. Mit solchen
E/A-Fehlern können im Allgemeinen weder das Dateisystem noch die
Anwendungen gut umgehen. Wird der LUKS2-Speichermechanismus auf einem
regulären Blockgerät (anstatt auf einer Loopback-Datei)
verwandt, dann ist die »discard«-Logik
standardmäßig an.
Hinzugefügt in Version 245.
--luks-offline-discard=LOGISCH
Steuert ähnlich zu
--luks-discard= das
Abschneiden des Dateisystems. Während allerdings
--luks-discard=
steuert, was passiert, wenn das Home-Verzeichnis aktiv ist, steuert
--luks-offline-discard=, was passiert, wenn es inaktiv wird, d.h. ob
der Speicher abgeschnitten/zugewiesen werden soll, wenn das Home-Verzeichnis
deaktiviert wird. Diese Option ist standardmäßig eingeschaltet,
um sicherzustellen, dass der Speicherplatz minimiert ist, wenn der Benutzer
nicht angemeldet ist.
Hinzugefügt in Version 246.
--luks-extra-mount-options=OPTIONEN
Akzeptiert eine Zeichenkette, die zusätzliche
Einhängeoptionen enthält, die beim Einhängen des
LUKS-Datenträgers verwandt werden sollen. Falls angegeben, wird diese
Zeichenkette an die vorgegebenen, eingebauten Einhängeoptionen
angehängt. Standardmäßig
"compress=zstd:1,noacl,user_subvol_rm_allowed".
Hinzugefügt in Version 250.
--luks-cipher=CHIFFRE,
--luks-cipher-mode=MODUS,
--luks-volume-key-size=BYTE,
--luks-pbkdf-type=TYP,
--luks-pbkdf-hash-algorithm=ALGORITHMUS,
--luks-pbkdf-force-iterations=ITERATIONEN,
--luks-pbkdf-time-cost=SEKUNDEN,
--luks-pbkdf-memory-cost=BYTE,
--luks-pbkdf-parallel-threads=THREADS,
--luks-sector-size=BYTE
Konfiguriert verschiedene kryptographische Parameter
für den LUKS2-Speichermechanismus. Siehe
cryptsetup(8)
für Details über die einzelnen Attribute.
Beachten Sie, dass homectl wie /proc/crypto die
Schlüsselgröße in Byte verwendet, aber
cryptsetup(8) Bit verwendet.
Hinzugefügt in Version 245.
--auto-resize-mode=
Konfiguriert, ob das zugrundeliegende Dateisystem beim
An- und Abmelden automatisch vergrößert und/oder verkleinert
werden soll. Akzeptiert eine der Zeichenketten »off«,
»grow« und »shrink-and-grow«. Wird derzeit nur
beim LUKS2-Backend angewandt und falls das Btrfs-Dateisystem innerhalb
verwandt wird (da nur dann das online-vergrößern/verkleinern des
Dateisystems unterstützt wird). Standardmäßig
»shrink-and-grow«, falls LUKS2/btrfs verwandt wird, andernfalls
»off«. Falls auf »off« gesetzt, erfolgt kein
automatisches verkleinern/vergrößern während des An- und
Abmeldens. Falls auf »grow« gesetzt, wird der Home-Bereich auf
die mittels
--disk-size= konfigurierte Größe
vergrößert, falls er derzeit kleiner sein sollte. Falls er
bereits auf die konfigurierte Größe passt oder
größer ist, erfolgt keine Aktion. Falls auf
»shrink-and-grow« gesetzt, wird der Home-Bereich beim Abmelden
auch auf die minimale Größe verkleinert, die der verwandte
Plattenplatz und die Dateisystembeschränkungen erlauben. Dieser Modus
stellt daher sicher, dass der Home-Bereich während der Aktivierung auf
die konfigurierte Größe vergrößert wird, aber im
deaktivierten Zustand nur den minimal-möglichen Platz belegt. Beachten
Sie, dass die Verkleinerungsaktion nicht stattfindet, falls das System
irregulär ausgeschaltet wird oder sich der Benutzer anderweitig nicht
korrekt abmeldet und sich der Benutzer erneut an- und wieder abmelden muss,
bevor diese Aktion erneut ausgeführt wird.
Hinzugefügt in Version 250.
--rebalance-weight=
Konfiguriert den Gewichtungsparameter für die
Neuauswuchtungslogik für freien Plattenplatz. Wird derzeit nur beim
LUKS2-Backend angewandt (da für das LUS2-Backend der Plattenplatz aus
einem benutzerbezogenen Loopback-Dateisystem zugewiesen wird, statt sofort aus
einem gemeinsamen Vorrat, wie dies die anderen Backends machen). In
regelmäßigen Abständen wird freier Plattenplatz in den
aktiven Home-Bereichen und ihren zugrundeligenden Speichern neu zwischen ihnen
verteilt, wobei der hier konfigurierte Gewichtungsparameter
berücksichtigt wird. Erwartet eine Ganzzahl im Bereich 1…10000
oder die besondere Zeichenkette »off«. Falls nicht angegeben,
ist die Vorgabe 100. Die Gewichtung wird verwandt, um den Home-Bereichen
verfügbar gemachten freien Platz zu skalieren: ein Home-Bereich mit
einer Gewichtung 200 wird doppelt so viel freien Platz erhalten wie einer mit
einer Gewichtung von 100; ein Home-Bereich mit einer Gewichtung von 50 wird
die Hälfte davon bekommen. Dem zugrundeliegende Dateisystem wird Platz
für eine Gewichtung von 20 zugewiesen werden. Falls auf
»off« gesetzt, wird keine automatische Verteilung von freiem
Platz für diesen Home-Bereich durchgeführt. Beachten Sie, dass
die explizite Größenveränderung des Home-Bereichs (mit
homectl resize, siehe unten) implizit die automatische Auswuchtung
ausschaltet. Um die automatische Auswuchtung wieder zu aktivieren, verwenden
Sie
--rebalance-weight= mit einem leeren Parameter.
Hinzugefügt in Version 250.
EINHÄNGUNGS-BENUTZERDATENSATZEIGENSCHAFTEN¶
--nosuid=LOGISCH, --nodev=LOGISCH,
--noexec=LOGISCH
Konfiguriert die Einhängeoptionen
»nosuid«, »nodev« und »noexec«
für Home-Verzeichnisse. Standardmäßig sind
»nodev« und »nosuid« eingeschaltet, während
»noexec« ausgeschaltet ist. Für Details über diese
Einhängeoptionen siehe
mount(8).
Hinzugefügt in Version 245.
CIFS-BENUTZERDATENSATZEIGENSCHAFTEN¶
--cifs-domain=DOMÄNE,
--cifs-user-name=BENUTZER,
--cifs-service=DIENST,
--cifs-extra-mount-options=OPTIONEN
Konfiguriert die »Windows File Sharing«-
(CIFS-)Domäne und Benutzer, die diesem Home-Verzeichnis/Benutzerkonto
zugeordneten werden sollen, sowie die Dateifreigabe (der
»Dienst«), die als Verzeichnis eingehängt werden soll.
Letzteres wird verwandt, wenn »cifs«-Speicher ausgewählt
wird. Die Dateifreigabe sollte im Format
»//
Rechner/
Freigabe/
Verzeichnis/… angegeben
werden. Der Verzeichnis-Anteil ist optional – falls er nicht angegeben
ist, wird das Home-Verzeichnis auf der obersten Verzeichnisebene der Freigabe
abgelegt. Die Einstellung
--cifs-extra-mount-options= ermöglicht
die Angabe zusätzlicher Einhängeoptionen beim Einhängen
der Freigabe, siehe
mount.cifs(8) für Details.
Hinzugefügt in Version 245.
ANMELDEVERHALTEN-DATENSATZEIGENSCHAFTEN¶
--stop-delay=SEK
Konfiguriert die Zeit, die der benutzerbezogene
Diensteverwalter weiterlaufen soll, nachdem alle Sitzungen des Benutzers
beendet wurden. Die Vorgabe wird in
logind.conf(5) konfiguriert
(für Home-Verzeichnisse auf Wechselmedien mit LUKS2-Speichermechanismen
ist die Vorgabe allerdings 0). Eine längere Zeit stellt sicher, dass
schnelle, wiederholte Anmeldungen effizienter erfolgen, da der
Diensteverwalter des Benutzer nicht jedes Mal gestartet werden muss.
Hinzugefügt in Version 245.
--kill-processes=LOGISCH
Konfiguriert, ob beim Abmelden des Benutzers alle seine
Prozesse getötet werden sollen. Die Vorgabe wird in
logind.conf(5) konfiguriert.
Hinzugefügt in Version 245.
--auto-login=LOGISCH
Akzeptiert ein logisches Argument. Konfiguriert, ob die
graphische Benutzerschnittstelle des Systems diesen Benutzer, falls
möglich, automatisch anmelden soll. Standardmäßig aus.
Falls mehr oder weniger als ein Benutzer auf diese Art markiert sind, dann ist
die automatische Anmeldung deaktiviert.
Hinzugefügt in Version 245.
--session-launcher=STARTPROGRAMM
Akzeptiert ein Zeichenkettenargument. Konfiguriert die
bevorzugte Sitzungsstarter-.desktop-Eintragsdatei des Benutzers (d.h.
»gnome«, »plasma« oder andere Namen, die in
/usr/share/xesssions/ oder /usr/share/wayland-sessions auftauchen). Dies wird
vom Display-Manager gelesen, um die Vorgabe-Sitzung auszuwählen, die
bei der Anmeldung des Benutzers gestartet wird.
Hinzugefügt in Version 256.
--session-type=TYP
Akzeptiert ein Zeichenkettenargument. Konfiguriert den
bevorzugten Sitzungstyp des Benutzers (d.h. »x11«,
»wayland« und alle anderen, von
$XDG_SESSION_TYPE
akzeptierten Werte). Dies wird vom Display-Manager gelesen, um den
Vorgabe-Sitzungstyp auszuwählen, in den der Benutzer angemeldet wird.
Hinzugefügt in Version 256.
BEFEHLE¶
Die folgenden Befehle werden verstanden:
list
Listet alle Home-Verzeichnisse (zusammen mit knappen
Details) auf, die derzeit von systemd-homed.service verwaltet werden. Dieser
Befehl wird auch ausgeführt, falls kein Befehl auf der Befehlszeile
angegeben ist. (Beachten Sie, dass die Liste der von diesem Befehl angezeigten
Benutzer nicht die von anderen Untersystemen verwalteten Benutzer
einschließt, wie beispielsweise Systembenutzer oder Benutzer, die in
/etc/passwd aufgeführt sind.)
Hinzugefügt in Version 245.
activate BENUTZER [BENUTZER…]
Aktiviert eines oder mehrere Home-Verzeichnisse. Das
Home-Verzeichnis jedes aufgeführten Benutzers wird aktiviert und unter
seinem Einhängepunkt (normalerweise /home/$USER) verfügbar
gemacht. Beachten Sie, dass alle auf diese Art aktivierten Home-Verzeichnisse
solange verfügbar bleiben, bis sie explizit deaktiviert werden (mit
deactivate, siehe unten) oder der Benutzer sich anmeldet und wieder
abmeldet und es daher aufgrund der Deaktivieren-beim-Abmelden-Logik
deaktiviert wird.
Die Aktivierung eines Home-Verzeichnisses umfasst verschiedene
Aktionen, die abhängig vom ausgewählten Speichermechanismus
sind. Falls der LUKS2-Mechanismus verwandt wird, umfasst dies Folgendes:
Abfragen des Benutzers nach einem Passwort, Einrichten des
Loopback-Gerätes, Überprüfen und Aktivieren des
LUKS2-Datenträgers, Überprüfen des Dateisystems,
Einhängen des Dateisystems und möglicherweise Ändern
der Eigentümerschaft der enthaltenen Dateien, um die UID/GID zu
korrigieren.
Hinzugefügt in Version 245.
deactivate BENUTZER [BENUTZER…]
Deaktiviert eines oder mehrere Home-Verzeichnisse. Dies
macht die Wirkung von
activate rückgängig.
Hinzugefügt in Version 245.
inspect BENUTZER [BENUTZER…]
Zeigt verschiedene Details über das angegebene
Home-Verzeichnis. Dies zeigt verschiedene Informationen über das
Home-Verzeichnis und sein Benutzerkonto, einschließlich Laufzeitdaten
wie den aktuellen Zustand, den Plattenverbrauch und Ähnlichem.
Kombinieren Sie dies mit
--json=, um stattdessen den detaillierten
JSON-Benutzerdatensatz anzuzeigen, möglicherweise kombiniert mit
--export-format=, um bestimmte Aspekte der Ausgabe zu
unterdrücken.
Hinzugefügt in Version 245.
authenticate BENUTZER [BENUTZER…]
Überprüft die
Authentifizierungs-Anmeldedaten eines Home-Verzeichnisses. Dies fragt beim
Aufrufenden nach einem Passwort (oder Ähnlichem) und
überprüft, ob dieses das Home-Verzeichnis korrekt entsperrt.
Dies belässt das Home-Verzeichnis in dem aktuellen Zustand, d.h. es
belässt das Home-Verzeichnis im inaktiven Zustand, falls es vorher
inaktiv war, und im aktiven Zustand, falls es vorher aktiv war.
Hinzugefügt in Version 245.
create BENUTZER, create
--identity=PFAD [BENUTZER]
Erstellt ein neues Home-Verzeichnis/Benutzerkonto mit dem
angegebenen Namen. Verwenden Sie die verschiedenen Optionen für
Benutzerdatensatzeigenschaften (wie oben beschrieben), um die verschiedenen
Aspekte des Home-Verzeichnisses und seines Benutzerkontos zu steuern.
Der angegebene Name sollte der in
Benutzer-/Gruppen-Namensyntax[4] beschriebenen Namenssyntax
folgen.
Hinzugefügt in Version 245.
adopt PFAD [PFAD…]
Adoptiert eine oder mehrere bestehende Home-Verzeichnisse
auf dem lokalen System. Akzeptiert einen oder mehrere Pfade auf
LUKS-Home-Verzeichnisse *.home oder freistehende Home-Verzeichnisse *.homedir/
oder Teildatenträger, die vorab mittels
systemd-homed(8)
erstellt wurden und stellt sie lokal für die Anmeldung zur
Verfügung. Die referenzierten Dateien werden nicht verschoben. Dies ist
die Alternative zum Verschieben von solchen Home-Verzeichnissen nach /home/
(wo sie automatisch aufgenommen würden).
Hinzugefügt in Version 258.
register DATEI [DATEI…]
Registriert einen oder mehrere Benutzer, ohne ihre
Home-Verzeichnisse zu erstellen. Akzeptiert einen oder mehrere Pfade zu
JSON-Benutzerdatensatzdateien. Falls der Pfad als »-« angegeben
ist, wird der JSON-Benutzerdatensatz aus der Standardeingabe gelesen:
Durch die Registrierung eines Benutzer wird dieser auf dem lokalen
System zugreifbar, ohne ein neues Home-Verzeichnis zu erstellen. Dies ist
insbesondere nützlich, um einen Benutzer auf einem System
verfügbar zu machen, auf dem er ursprünglich nicht erstellt
wurde.
Here's an example how to make a local user account with its home
directory accessible on a remote system, using SMB/CIFS file sharing. With
Samba installed in its default configuration invoke as "root":
Continue as regular user "lennart":
$ homectl update lennart --ssh-authorized-keys=… -N --storage=cifs --cifs-service="//$HOSTNAME/lennart"
$ homectl get-signing-key | ssh zielsystem homectl add-signing-key --key-name="$HOSTNAME".public
$ homectl inspect -E lennart | ssh zielsystem homectl register -
$ ssh lennart@zielsystem
This first ensures the user account "lennart" is known
to and accessible by Samba. It then registers a local SSH access that shall
be used for accessing this user, and configures CIFS as default storage for
non-local systems on the account. It then adds the local system's account
signing key to the target system. Then it registers the local user account
with the target system. Finally it logs into the account on the target
system. The target system will then connect back via SMB/CIFS to access the
home directory.
Hinzugefügt in Version 258.
unregister BENUTZER…
Unregisters one or more user accounts. This only removes
the user record from the local system, it does not delete the home directory.
The home directory can be readded via the
register or
adopt
command later, on this or another system. Note that unregistering a user whose
home directory is placed in /home/ will not make the user disappear from the
local user database, as all supported home directories placed there will show
up in the user database. However, the user record will become
"unfixated", i.e. lose its binding to the local system. When logged
into it will automatically regain the binding, and acquire a local UID/GID
pair.
Hinzugefügt in Version 258.
remove BENUTZER
Entfernt ein Home-Verzeichnis/Benutzerkonto. Dies
entfernt sowohl den Benutzerdatensatz des Home-Verzeichnisses als auch das
Home-Verzeichnis selbst und löscht alle Dateien und Verzeichnisse, die
dem Benutzer gehören.
Hinzugefügt in Version 245.
update BENUTZER, update
--identity=PFAD [BENUTZER]
Aktualisiert ein Home-Verzeichnis/Benutzerkonto.
Verwenden Sie verschiedene Optionen für Benutzerdatensatzeigenschaften
(wie oben beschrieben), um Änderungen am Konto vorzunehmen, oder
stellen Sie alternativ einen vollständigen, aktualisierten
JSON-Benutzerdatensatz mit der Option
--identity= bereit.
Beachten Sie, dass Änderungen an
Benutzerdatensätzen, die nicht mit dem lokal verfügbaren
privaten Schlüssel signiert sind, nicht erlaubt sind, außer
--identity= wird mit einem Benutzerdatensatz verwandt, der bereits
korrekt durch einen anerkannten privaten Schlüssel signiert ist.
Hinzugefügt in Version 245.
passwd BENUTZER
Ändert das Passwort des angegebenen
Home-Verzeichnisses/Benutzerkontos.
Hinzugefügt in Version 245.
resize BENUTZER BYTE
Ändert den Plattenplatz, der dem angegebenen
Home-Verzeichnis zugeordnet ist. Falls der LUKS2-Speichermechanismus verwandt
wird, wird die Größe der Loopback-Datei und des darin
enthaltenen Dateisystems automatisch geändert. Beachten Sie, dass es
notwendig ist, das Home-Verzeichnis zu deaktivieren (d.h. der Benutzer muss
sich abmelden), falls das Dateisystem »ext4« innerhalb des
LUKS2-Datenträgers verwandt wird und die Größe verringert
wird. Vergrößern kann erfolgen, während das
Home-Verzeichnis aktiv ist. Falls »xfs« innerhalb des
LUKS2-Datenträgers verwandt wird, kann das Home-Verzeichnis
überhaupt nicht verkleinert werden. Bei allen drei Dateisystemen
(»ext4«, »xfs« und »btrfs«) kann das
Home-Verzeichnis vergrößert werden, während der Benutzer
angemeldet ist, bei »btrfs« kann es auch verkleinert werden,
während der Benutzer angemeldet ist. Falls die Speichermechanismen
»subvolume«, »directory« oder
»fscrypt« verwandt werden, berücksichtigt die
Größenänderung auch Dateisystemkontingente. Der
Größenparameter kann die normalen Endungen B, K, M, G, T (zur
Basis 1024) verwenden. Die besonderen Zeichenketten »min« und
»max« können an Stelle eines numerischen
Größenwertes verwandt werden, um den für den Home-Bereich
zugewiesenen Plattenplatz zu minimieren oder zu maximieren, wobei die
Randbedingungen des Dateisystems, der Plattenverwendung innerhalb des
Home-Bereichs und des zugrundeligenden Speichersystems berücksichtigt
werden.
Hinzugefügt in Version 245.
lock BENUTZER
Suspendiert temporär den Zugriff auf das
Home-Verzeichnis des Benutzers und entfernt alle zugehörigen
kryptographischen Schlüssel aus dem Speicher. Jeder Zugriffsversuch auf
das Home-Verzeichnis wird hängen, bis das Home-Verzeichnis wieder
entsperrt (d.h. reauthentifiziert) wird. Diese Funktionalität ist
primär für den Einsatz bei der Systemsuspendierung gedacht, um
sicherzustellen, dass auf die Benutzerdaten nicht mehr zugegriffen werden
kann, bis der Benutzer sich nach dem Wiederaufwachen erneut authentifiziert
hat. Diese Aktion ist nur für Home-Verzeichnisse definiert, die den
LUKS2-Speichermechanismus verwenden.
Hinzugefügt in Version 245.
unlock BENUTZER
Nimmt den Zugriff auf das Home-Verzeichnis des Benutzers
wieder auf; macht damit die Wirkung von
lock (siehe oben)
rückgängig. Hierfür muss sich der Benutzer
authentifizieren, da die kryptographischen Schlüssel, die für
den Zugriff auf das Home-Verzeichnis benötigt werden, erneut erlangt
werden müssen.
Hinzugefügt in Version 245.
lock-all
Führt den Befehl
lock auf allen geeigneten
Home-Verzeichnissen auf einmal aus. Diese Aktion wird im Allgemeinen bei der
Systemsuspendierung ausgeführt (d.h. durch
systemctl suspend und
zugehörige Befehle), um sicherzustellen, dass die kryptographischen
Schlüssel für den Zugriff auf die Home-Verzeichnisse aus dem
Speicher entfernt werden.
Hinzugefügt in Version 245.
deactivate-all
Führt den Befehl
deactivate auf allen
aktiven Home-Verzeichnissen auf einmal aus. Diese Aktion wird im Allgemeinen
bei dem Herunterfahren des Systems ausgeführt (d.h. durch
systemctl
poweroff und zugehörige Befehle), um sicherzustellen, dass die
Home-Verzeichnisse aller aktiven Benutzer vollständig deaktiviert
werden, bevor /home/ und zugehörige Dateisysteme ausgehängt
werden.
Hinzugefügt in Version 247.
with BENUTZER BEFEHL…
Aktiviert das Home-Verzeichnis des angegebenen Benutzers,
führt den angegebenen Befehl aus (unter der Identität des
Aufrufenden, nicht des Benutzers) und deaktiviert das Home-Verzeichnis
anschließend wieder (außer der Benutzer ist anderweitig
angemeldet). Dieser Befehl ist zur Ausführung privilegierter
Sicherungsskripte und Ähnlichem nützlich, verlangt aber die
Authentifizierung mit den Anmeldedaten des Benutzers, um in der Lage zu sein,
das Home-Verzeichnis des Benutzers zu entsperren.
Hinzugefügt in Version 245.
rebalance
Freien Plattenplatz zwischen aktiven Home-Bereichen und
dem zugrundeliegenden Speicher auswuchten. Siehe vorangehende Option
--rebalance-weight=. Dies führt keine Aktion aus, außer
es gibt mindestens einen aktiven LUKS2-Home-Bereich, bei dem das Auswuchten
von Plattenplatz aktiviert ist. Diese Aktion ist synchron: sie wird nur
abschließen, nachdem der Plattenplatz gemäß der
Auswuchtungs-Gewichtungswerte ausgewuchtet wurde. Beachten Sie, dass das
Auswuchten auch im Hintergund in regelmäßigen Abständen
automatisch erfolgt. Verwenden Sie diesen Befehl, um synchron sicherzustellen,
dass der Plattenplatz geeignet neu verteilt wird, bevor Sie eine Aktion
anstoßen, die große Mengen an Plattenplatz benötigt.
Hinzugefügt in Version 250.
firstboot
Dieser Befehl ist dazu gedacht, während des
erstmaligen Systemstarts des Systems aufgerufen zu werden. Er prüft, ob
bisher ein regulärer Home-Bereich existiert und falls nicht, befragt
den Benutzer interaktiv auf der Konsole nach Benutzernamen und Passwort und
erstellt einen. Falls alternativ einer oder mehrere
Dienstezugangsberechtigungen, deren Namen mit »home.create«
beginnt, dem Befehl übergeben werden (und die einen Benutzerdatensatz
im JSON-Format enthalten), werden diese Benutzer automatisch während
des Systemstarts erstellt.
Dieser Befehl wird durch die Dienste-Unit
systemd-homed-firstboot.service aufgerufen.
Hinzugefügt in Version 256.
list-signing-keys
Show a list of public keys that home directories can be
signed with to be allowed for local login. One such key (local.public) will be
generated automatically for signing locally created home directories, but
additional public keys may be registered to accept home directories from other
origins too (see
add-signing-key below).
Hinzugefügt in Version 258.
get-signing-key [NAME…]
Write the public key identified by the specified name to
standard output (in PEM format). If no name is specified defaults to
local.public, i.e. the automatically generated key for locally created home
directories.
Hinzugefügt in Version 258.
add-signing-key [DATEI…]
Add public key(s) from the specified PEM key file(s) to
the list of keys that home areas have to be signed by to be permitted for
local login. If a path of "-" is specified, or if no file is
specified at all, the key will be read from standard input. The key file
name(s) must carry the .public suffix, and the file name(s) will be used to
name the key(s) once added, too. If a key is added from standard input the key
name must be specified explicitly via
--key-name=, see above.
This command is useful for permitting local home directories to be
used on a remote system. Example:
homectl get-signing-key | ssh meinandererrechner homectl add-signing-key --key-name="$HOSTNAME".public
Hinzugefügt in Version 258.
remove-signing-key NAME…
Remove the public key identified by the specified name
from the list of keys that control from which origins to permit home
directories for login.
Hinzugefügt in Version 258.
ZUGANGSBERECHTIGUNGEN¶
Beim Aufruf mit dem Befehl firstboot unterstützt
homectl die Dienstezugangsberechtigungslogik, wie sie durch
ImportCredential=/LoadCredential=/SetCredential= (siehe
systemd.exec(5) zu Details) implementiert wird. Die folgenden
Zugangsberechtigungen werden verwandt, wenn sie hereingereicht werden:
home.create.*
Falls einer oder mehrere Zugangsberechtigungen, deren
Namen mit »home.create.«, gefolgt von einem gültigen
UNIX-Benutzernamen, anfangen, übergeben werden, wird ein neuer
Home-Bereich erzeugt, einen für jeden angegebenen Benutzerdatensatz.
Hinzugefügt in Version 256.
KERNEL-BEFEHLSZEILE¶
systemd.firstboot=
Dieser logische Wert wird die Auswirkung des Befehls
homectl firstboot deaktivieren. Er wird primär von
systemd-firstboot(1) ausgewertet.
Hinzugefügt in Version 256.
EXIT-STATUS¶
Bei Erfolg wird 0 zurückgegeben, anderenfalls ein
Fehlercode ungleich Null.
Wird ein Befehl mit with aufgerufen, dann wird der
Exit-Status des Kindprozesses weitergeleitet. Insgesamt beendet sich
homectl ohne Fehler, falls der Befehl erfolgreich aufgerufen wurde
und sich erfolgreich beendete.
UMGEBUNGSVARIABLEN¶
$SYSTEMD_LOG_LEVEL
Die maximale Protokollierstufe für ausgegebene
Meldungen (Meldungen mit einer höheren Protokollierstufe, d.h. weniger
wichtige, werden unterdrückt). Akzeptiert eine Kommata-getrennte Liste
von Werten. Ein Wert kann einer der folgenden sein (in Reihenfolge
absteigender Bedeutung):
emerg,
alert,
crit,
err,
warning,
notice,
info,
debug oder eine Ganzzahl im
Bereich 0…7. Siehe
syslog(3) für weitere Informationen.
Jedem Wert kann optional eine Zeichenkette aus
console,
syslog,
kmsg oder
journal gefolgt von einem Doppelpunkt vorangestellt
werden, um die maximale Protokollierstufe für dieses spezielle
Protokollierziel zu setzen (d.h.
SYSTEMD_LOG_LEVEL=debug,console:info
legt fest, dass auf der Stufe »debug« protokolliert werden soll,
außer beim Protokollieren auf die Konsole, die auf Stufe
»info« erfolgen soll). Beachten Sie, dass die globale maximale
Protokollierstufe Priorität gegenüber jeder zielbezogenen
maximalen Protokollierstufe hat.
$SYSTEMD_LOG_COLOR
Ein logischer Wert. Falls true, werden auf das TTY
geschriebene Nachrichten gemäß ihrer Priorität
eingefärbt.
Diese Einstellung ist nur nützlich, falls die Nachrichten
direkt auf das Terminal geschrieben werden, da journalctl(1) und
andere Werkzeuge, die Protokolle anzeigen, selbständig Nachrichten
gemäß ihrer Protokollierungsstufe einfärben.
$SYSTEMD_LOG_TIME
Ein logischer Wert. Falls true, wird den
Protokollnachrichten der Konsole ein Zeitstempel vorangestellt.
Diese Einstellung ist nur nützlich, falls die Nachrichten
direkt auf das Terminal oder in eine Datei geschrieben werden, da
journalctl(1) und andere Werkzeuge, die Protokolle anzeigen,
selbständig Zeitstempel basierend auf ihren Metadaten den Nachrichten
anhängen.
$SYSTEMD_LOG_LOCATION
Ein logischer Wert. Falls true, wird den
Protokollnachrichten ein Dateiname und eine Zeilenummer in dem Quellcode, aus
dem die Nachrichten stammen, vorangestellt.
Beachten Sie, dass der Protokollierort sowieso oft als Metadaten
zu den Journal-Einträgen angehängt ist. Die Aufnahme in den
Nachrichtentext kann bei der Fehlersuche in Programmen dennoch praktisch
sein.
$SYSTEMD_LOG_TID
Ein logischer Wert. Falls true, wird den Nachrichten die
aktuelle numerische Thread-Kennung (TID) vorangestellt.
Beachten Sie, dass diese Informationen sowieso als Metadaten an
Journal-Einträge angehängt wird. Die Aufnahme direkt im
Nachrichtentext kann aber trotzdem bei der Fehlersuche in Programmen
praktisch sein.
$SYSTEMD_LOG_TARGET
Das Ziel für Protokolliernachrichten. Entweder
console (auf das angehängte TTY protokollieren),
console-prefixed (auf das angehängte TTY protokollieren, aber
die Protokollierstufe und »Einrichtung« voranstellen, siehe
syslog(3)),
kmsg (in den zirkulären
Kernel-Protokollpuffer protokollieren),
journal (in das Journal
protokollieren),
journal-or-kmsg (in das Journal protokollieren, falls
verfügbar, und andernfalls nach Kmsg),
auto (das geeignete
Protokollierziel automatisch ermitteln, die Vorgabe) oder
null (die
Protokollierung deaktivieren).
$SYSTEMD_LOG_RATELIMIT_KMSG
Ob Kmsg ratenlimitiert werden soll oder nicht. Akzeptiert
einen logischen Wert. Standardmäßig »true«. Falls
deaktiviert, wird Systemd die nach Kmsg geschriebenen Meldungen nicht
ratenlimitieren.
$SYSTEMD_PAGER, $PAGER
Zu verwendendes Textanzeigeprogramm, wenn
--no-pager nicht angegeben ist. Falls gesetzt, wird
$SYSTEMD_PAGER verwandt, andernfalls
$PAGER. setzt
$PAGER
außer Kraft. Falls weder
$SYSTEMD_PAGER noch
$PAGER
gesetzt sind, wird eine Reihe wohlbekannter Implementierungen von
Textanzeigeprogrammen der Reihe nach ausprobiert, einschließlich
less(1) und
more(1), bis eines gefunden wird. Falls keine
Implementierung eines Textanzeigeprogramms gefunden wird, wird keines
aufgerufen. Setzen dieser Umgebungsvariablen auf die leere Zeichenkette oder
den Wert »cat« ist äquivalent zur Übergabe von
--no-pager.
Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist,
können $SYSTEMD_PAGER und $PAGER nur zum Deaktivieren
des Seitenanzeigeprogramms (mit »cat« oder »«)
verwandt werden und werden ansonsten ignoriert.
$SYSTEMD_LESS
Setzt die an
less übergebenen Optionen
(standardmäßig »FRSXMK«) außer Kraft.
Benutzer könnten insbesondere zwei Optionen ändern
wollen:
K
Diese Option weist das Textanzeigeprogramm an, sich
sofort beim Druck von Strg-C zu beenden. Um
less die Handhabung von
Strg-C selbst zum Umschalten auf die Eingabeaufforderung zu erlauben, setzen
Sie diese Option zurück.
Falls der Wert von $SYSTEMD_LESS kein »K«
enthält und less das aufgerufene Textanzeigeprogramm ist, wird
Strg+C durch das Programm ignoriert und muss durch das Textanzeigeprogramm
selbst gehandhabt werden.
X
Diese Option weist das Textanzeigeprogramm an, keine
Termcap-Initialisierungs- und -Deinitalisierungszeichenketten an das Terminal
zu senden. Dies ist standardmäßig gesetzt, damit die Darstellung
von Befehlen selbst nach dem Beenden des Textanzeigeprogramms sichtbar bleibt.
Allerdings stehen dadurch einige Funktionen des Textanzeigeprogramms nicht zur
Verfügung; insbesondere ist das Scrollen in der Ausgabe mit der Maus
nicht möglich.
Beachten Sie, dass das Setzen der regulären
Umgebungsvariablen $LESS keine Auswirkungen auf die Ausführung
von less(1) durch systemd(1)-Werkzeuge hat.
Siehe less(1) für weitere Ausführungen.
$SYSTEMD_LESSCHARSET
Setzt den an
less zu übergebenden
Zeichensatz (standardmäßig »utf-8«, falls das
aufrufende Terminal als UTF-8-kompatibel erkannt wurde) außer Kraft.
Beachten Sie, dass das Setzen der regulären
Umgebungsvariablen $LESSCHARSET keine Auswirkungen auf die
Ausführungen von less(1) durch systemd(1)-Werkzeuge
hat.
$SYSTEMD_PAGERSECURE
Typische Seitenanzeigeprogramme wie
less(1)
unterstützen nebem dem seitenweisen Anzeigen (d.h. dem Durchlaufen der
Ausgabe) das Öffnen von oder Schreiben in andere Dateien und die
Ausführung von beliebigen Shell-Befehlen. Werden Befehle mit
erhöhten Berechtigungen, beispielsweise unter
sudo(8) oder
pkexec(1), aufgerufen, wird das Seitenanzeigeprogramm zur
Sicherheitsgrenze. Es muss darauf geachtet werden, dass nur Programme mit
streng begrenzter Funktionalität als Seitenanzeigeprogramm verwandt
werden und unerwünschte interaktive Funktionalitäten wie das
Öffnen oder Erstellen von neuen Dateien oder das Starten von
Subprozessen nicht erlaubt sind. Der »Sichere Modus« für
das Seitenanzeigeprogramm kann wie nachfolgend beschrieben aktiviert werden,
falls das Seitenanzeigeprogramm dies unterstützt (die meisten
Seitenanzeigeprogramme sind nicht so geschrieben, dass sie dies
berücksichtigen). Es wird empfohlen, den »Sicheren Modus«
explizit zu aktivieren oder das Seitenanzeigeprogramm komplett mittels
--no-pager oder
PAGER=cat zu deaktivieren, wenn nicht
vertrauenswürdigen Benutzern die Ausführung von Programmen mit
erhöhten Privilegien erlaubt wird.
Diese Option akzeptiert ein logisches Argument. Ist es auf
»true« gesetzt, wird der »Sichere Modus« des
Seitenanzeigeprogramms aktiviert. Im »Sicheren Modus« wird
LESSSECURE=1 beim Aufruf des Seitenanzeigeprogramms gesetzt. Dies
weist das Seiteanzeigeprogramm an, Befehle zum Öffnen oder Erstellen
von neuen Dateien sowie das Starten von Subprozessen zu deaktivieren.
Derzeit ist nur von less(1) bekannt, dass es diese Variable versteht
und den »Sicheren Modus« implementiert.
Ist diese Variable auf »false« gesetzt, unterliegt
das Seitenanzeigeprogramm keinen Beschränkungen. Setzen auf
SYSTEMD_PAGERSECURE=0 oder das Beibehalten der Variable von der
geerbten Umgebung könnte den Benutzern die Ausführung
beliebiger Befehle erlauben.
Ist $SYSTEMD_PAGERSECURE nicht gesetzt, versuchen die
Systemd-Werkzeuge automatisch herauszufinden, ob der »Sicheren
Modus« aktiviert werden soll und ob das Seitenanzeigeprogramm dies
unterstützt. Der »Sichere Modus« wird aktiviert, falls
die effektive UID nicht mit der UID des Eigentümers der
Anmeldesitzung übereinstimmt, siehe geteuid(2) und
sd_pid_get_owner_uid(3), oder wenn die Ausführung unter
Werkzeugen wie sudo(8) oder ähnlichem erfolgt
($SUDO_UID ist gesetzt [5]). In diesen Fällen wird
SYSTEMD_PAGERSECURE=1 gesetzt und Seitenanzeigeprogramme, von denen
nicht bekannt ist, dass sie den »Sicheren Modus«
unterstützen, werden überhaupt nicht verwandt. Beachten Sie,
dass diese automatische Erkennung nur die typischsten Mechanismen zur
Erlangung von Privilegien abdeckt und dem Komfort dient. Es wird empfohlen,
explizit $SYSTEMD_PAGERSECURE zu setzen oder das
Seitenanzeigeprogramm zu deaktivieren.
Beachten Sie, dass auch $SYSTEMD_PAGERSECURE gesetzt sein
muss, damit die Variablen $SYSTEMD_PAGER oder $PAGER
(außer zum Deaktivieren des Seitenanzeigeprogramms)
berücksichtigt werden.
$SYSTEMD_COLORS
Akzeptiert ein logisches Argument. Wenn true, werden
systemd und verwandte Hilfswerkzeuge Farben in ihrer Ausgabe verwenden,
andernfalls wird die Ausgabe einfarbig sein. Zusätzlich kann die
Variable eine der folgenden besonderen Werte annehmen: »16«,
»256«, um die Verwendung von Farbe auf die grundlegenden 16 bzw.
256 ANSI-Farben zu beschränken. Dies kann festgelegt werden, um die auf
$TERM und der vorliegenden Verbindung der Konsole basierende
automatische Entscheidung außer Kraft zu setzen.
$SYSTEMD_URLIFY
Dies muss ein logischer Wert sein. Er steuert, ob
anklickbare Links für Terminal-Emulatoren, die dies
unterstützen, erstellt werden sollen. Dies kann angegeben werden, um
die Entscheidung, die systemd basierend auf $TERM und anderen
Bedingungen trifft, außer Kraft zu setzen.
BEISPIELE¶
Beispiel 1. Erstellt einen Benutzer
»waldo« in der Administratorgruppe »wheel« und
weist ihm 500 MiB Plattenplatz zu.
homectl create waldo --real-name="Waldo McWaldo" -G wheel --disk-size=500M
Beispiel 2. Erstellt einen Benutzer
»wally« auf einem USB-Stick und weist ihm eine maximale Anzahl
von 500 gleichzeitig laufenden Prozessen zu.
homectl create wally --real-name="Wally McWally" --image-path=/dev/disk/by-id/usb-SanDisk_Ultra_Fit_476fff954b2b5c44-0:0 --tasks-max=500
Beispiel 3. Ändert die Nice-Stufe des
Benutzers »odlaw« auf +5, um sicherzustellen, dass bei der
Anmeldung des Benutzers die Umgebungsvariable$EINE auf die
Zeichenkette »SACHE« gesetzt ist.
homectl update odlaw --nice=5 --setenv=EINE=SACHE
Beispiel 4. Richtet die Authentifizierung mit
einem YubiKey-Sicherheits-Token mittels PKCS#11/PIV ein:
# Bereinigt den Yubikey von allen alten Schlüsseln (Vorsicht!)
ykman piv reset
# Erstellt ein neues Schlüsselpaar (privat/öffentlich) auf dem Gerät, speichert den öffentlichen Schlüssel in »pubkey.pem«.
ykman piv generate-key -a RSA2048 9d pubkey.pem
# Erstellt ein selbstsigniertes Zertifikat aus diesem öffentlichen Schlüssel und speichert es auf dem Gerät.
ykman piv generate-certificate --subject "Knobelei" 9d pubkey.pem
# Der öffentliche Schlüssel wird auf der Platte nicht mehr benötigt
rm pubkey.pem
# Erlaubt dem Sicherheits-Token, das Konto des Benutzers »lafcadio« zu entsperren
homectl update lafcadio --pkcs11-token-uri=auto
Beispiel 5. Richtet die Authentifizierung mit
einem FIDO2-Sicherheits-Token ein:
# Erlaubt dem FIDO2-Sicherheits-Token, das Konto des Benutzers »nihilbaxter« zu entsperren
homectl update nihilbaxter --fido2-device=auto
ANMERKUNGEN¶
- 1.
- JSON-Benutzerdatensätze
- 2.
- Icon-Benennungsspezifikation
- 3.
- Benutzerdatensatz-Blob-Verzeichnisse
- 4.
- Benutzer-/Gruppennamen-Syntax
- 5.
- Es wird für andere Werkzeuge empfohlen, $SUDO_UID geeignet
zu setzen und zu überprüfen und es als allgemeine
Schnittstelle zu behandeln.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von
Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die Mailingliste der
Übersetzer:
debian-l10n-german@lists.debian.org.