HOMECTL(1)

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.

--prompt-new-user
    Wird dies zusammen mit firstboot verwandt und bisher auf dem System kein normales Benutzerkonto existiert, dann wird dieses Werkzeug interaktiv nach Benutzerinformationen fragen und ein Konto erstellen.

    Hinzugefügt in Version 256.

--prompt-shell=
    Akzeptiert ein logische Argument. Steuert, ob interaktiv nach einer Anmelde-Shell gefragt wird, falls firstboot --prompt-new-user verwandt wird. Standardmäßig »true«.

    Hinzugefügt in Version 259.

--prompt-groups=
    Akzeptiert ein logische Argument. Steuert, ob interaktiv nach Hilfsgruppen, die neuen Benutzern hinzugefügt werden sollen, gefragt wird, falls firstboot --prompt-new-user verwandt wird. Standardmäßig »true«.

    Hinzugefügt in Version 259.

--chrome=
    Akzeptiert ein logische Argument. Standardmäßig wird der Bildschirm bei der interaktiven Benutzererstellung mittels firstboot --prompt-new-user »chrome«-Balken mit invertierten Farben oben und unten auf dem Terminal-Bildschirm anzeigen. Dies kann durch Setzen dieser Option auf »false« deaktiviert werden.

    Hinzugefügt in Version 259.

--mute-console=
    Akzeptiert ein logische Argument. Falls »true«, wird die Ausgabe des Kernel-Protokolls und die Diensteverwalterstatusausgabe auf der Systemkonsole temporär deaktiviert, während firstboot --prompt-new-user läuft, so dass dessen Ausgabe nicht unterbrochen wird. Standardmäßig »false«.

    Hinzugefügt in Version 259.

--match=this|other|any|auto, -A, -N, -T
    Option --match= 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.

    Das folgende Beispiel zeigt, wie ein lokales Benutzerkonto mit seinem Home-Verzeichnis für ein fernes System mittels SMB/CIFS-Dateifreigabe zugreifbar gemacht wird. Ist Samba mit seiner Standardkonfiguration installiert, dann rufen Sie als »root« folgendes auf:

        # smbpasswd -a lennart

    Fahren Sie dann als normaler Benutzer »lennart« fort:

        $ 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

    Dies stellt zuerst sicher, dass das Benutzerkonto »lennart« bekannt ist und über Samba darauf zugegriffen werden kann. Es registriert dann einen lokalen SSH-Zugriff, der zum Zugriff durch diesen Benutzer verwandt werden soll, und konfiguriert CIFS als Standardspeicher für nichtlokale Systeme auf diesem Konto. Dann fügt es den Signaturschlüssel des lokalen Systemkontos auf dem Zielsystem hinzu. Anschließend registriert es das lokale Benutzerkonto auf dem Zielsystem. Schließlich meldet es sich auf dem Konto auf dem Zielsystem an. Das Zielsystem verbindet sich dann rückwärts mittels SMB/CIFS, um auf das Home-Verzeichnis zuzugreifen.

    Hinzugefügt in Version 258.

unregister BENUTZER…
    Hebt die Registrierung eines oder mehrerer Benutzerkonten auf. Dies entfernt nur den Benutzerdatensatz von dem lokalen System, es löscht nicht das Home-Verzeichnis. Das Home-Verzeichnis kann mittels der Befehle register oder adopt auf diesem oder einem anderen System später wieder hinzugefügt werden. Beachten Sie, dass das Aufheben der Registrierung eines Benutzers, dessen Home-Verzeichnis in /home/ liegt, nicht dazu führt, dass der Benutzer aus der lokalen Benutzerdatenbank verschwindet, da alle unterstützen Home-Verzeichnisse, die dort liegen, in der Benutzerdatenbank auftauchen werden. Allerdings wird der Benutzerdatensatz »losgelöst«, d.h. seine Anbindung an das lokale System verlieren. Beim Anmelden wird er automatisch seine Bindung wieder erlangen und ein lokales UID/GID-Paar erwerben.

    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 (nur falls --prompt-new-user angegeben ist). 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
    Zeigt eine Liste der öffentlichen Schlüssel an, mit denen Home-Verzeichnisse signiert werden können, damit sie für lokale Anmeldungen erlaubt sind. Ein solcher lokaler Schlüssel (local.public) wird automatisch zum Signieren lokal erstellter Home-Verzeichnisse erstellt, aber zusätzliche öffentliche Schlüssel können registriert werden, um Home-Verzeichnisse auch von anderen Herkunften zu akzeptieren (siehe add-signing-key weiter unten).

    Hinzugefügt in Version 258.

get-signing-key [NAME…]
    Schreibt den durch den angegebenen Namen festgelegten öffentlichen Schlüssel in die Standardausgabe (im PEM-Format). Falls kein Name angegeben ist, ist »local.public« die Vorgabe, d.h. der automatisch erstellte Schlüssel für lokal erstellte Home-Verzeichnisse.

    Hinzugefügt in Version 258.

add-signing-key [DATEI…]
    Fügt öffentliche Schlüssel aus den angegebenen PEM-Schlüssel-Datei(en) zu der Liste der Schlüssel hinzu, mit denen Home-Bereiche signiert werden müssen, um für lokale Anmeldung erlaubt zu sein. Falls ein Pfad »-« oder gar keine Datei angegeben wird, wird der Schlüssel von der Standardeingabe gelesen. Der/Die Schlüssel-Dateiname(n) müssen die Endung ».public« tragen und der/die Dateiname(n) werden auch als Name(n) des/der Schlüssel verwandt, sobald sie hinzugefüg sind. Falls ein Schlüssel von der Standardeingabe hinzugefügt wird, muss der Schlüsselname explizit mittels --key-name= angegeben werden, siehe oben.

    Dieser Befehl ist nützlich, um explizit die Verwendung lokaler Home-Verzeichnisse auf fernen Systemen zu erlauben. Beispiel:

        homectl get-signing-key | ssh meinandererrechner homectl add-signing-key --key-name="$HOSTNAME".public

    Hinzugefügt in Version 258.

remove-signing-key NAME…
    Entfernt den öffentlichen, durch den angegebenen Namen identifizierten Schlüssel aus der Liste der Schlüssel, die steuern, welchen Herkünften Home-Verzeichnisse für die Anmeldung erlaubt werden.

    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 oder einen besonderen Wert. Standardmäßig (nicht gesetzt) werden systemd und zugehörige Hilfswerkzeuge in ihrer Ausgabe Farben verwenden, falls dies möglich ist. Falls $COLORTERM auf »truecolor« oder »24bit« gesetzt ist, werden 24-bit-Farben aktiviert, ansonsten 256 Farben, außer wenn $NO_COLOR gesetzt ist oder $TERM anzeigt, dass Farben deaktiviert sind.

    true
        Identisch zu nicht gesetzt, außer dass $NO_COLOR ignoriert wird.

    false
        Die Ausgabe erfolgt monochrom.

    »16«, »256«, »24bit«
        Verwendet immer die 16, 256 bzw. 24-bit-ANSI-Basisfarben.

    »auto-16«, »auto-256«, »auto-24bit«
        Verwendet die angegebene Menge an Farben, abhängig von $TERM und womit die Konsole verbunden ist.

$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

Beispiel 6. Einen Wiederherstellungsschlüssel zu einem bestehenden Benutzerkonto hinzufügen:

    # Einen Wiederherstellungsschlüssel für den Benutzer »emily« erstellen und ihm hinzufügen.
    homectl update emily --recovery-key=yes

SIEHE AUCH

systemd(1), systemd-homed.service(8), homed.conf(5), userdbctl(1), useradd(8), cryptsetup(8)

ANMERKUNGEN

1.  JSON-Benutzerdatensätze
    https://systemd.io/USER_RECORD

2.  Icon-Benennungsspezifikation
    https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html

3.  Benutzerdatensatz-Blob-Verzeichnisse
    https://systemd.io/USER_RECORD_BLOB_DIRS

4.  Benutzer-/Gruppennamen-Syntax
    https://systemd.io/USER_NAMES

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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).