BESCHREIBUNG¶
systemd-ask-password kann zur Abfrage eines
Systempasswortes oder einer Passphrase vom Benutzer mit einer auf der
Befehlszeile angegebenen Frage verwandt werden. Bei der Ausführung
auf einem TTY wird es das Passwort auf dem TTY abfragen und es auf der
Standardausgabe ausgeben. Bei der Ausführung ohne TTY oder mit
--no-tty wird es den systemweiten Abfragemechanismus verwenden, der
es aktiven Benutzern erlaubt, mittels mehreren, unten aufgeführten
Agenten, zu antworten.
Der Zweck dieses Werkzeuges ist die Abfrage von systemweiten
Passwörtern — das bedeutet Passwörter, die nicht einem
bestimmten Benutzerkonto zugeordnet sind. Beispiele: Freigabe der
Entschlüsselung von Festplatten, wenn diese eingesteckt werden oder
der Systemstart läuft, Eingabe der Passphrase eines SSL-Zertifikates
für Web- und VPN-Server.
Bestehende Agenten sind:
•ein Systemstartpasswortagent, der den Benutzer
mittels
plymouth(8) nach Passwörtern fragt
•ein TTY-Agent, der temporär während
Aufrufen von
systemctl(1) gestartet wird
•ein Befehlszeilenagent, der temporär
gestartet werden kann, um in der Warteschlange befindliche Passwortanfragen zu
bearbeiten — systemd-tty-ask-password-agent --query
Die Beantwortung systemweiter Passwortabfragen ist eine
privilegierte Aktion, daher laufen alle oben aufgeführten Agenten
(außer dem letzten) als privilegierter Systemdienst. Der letzte
benötigt auch erweiterte Privilegien, daher sollte er mittels
sudo(8) oder ähnlichem ausgeführt werden.
Gemäß der
Systemd-Passwortagentenspezifikation[1] können
zusätzliche Passwortagenten implementiert werden.
Falls ein Passwort auf einem TTY abgefragt wird, kann der Benutzer
TAB drücken, um die Sternchen zu verstecken, die normalerweise
für jedes eingetippte Zeichen angezeigt werden. Drücken der
Rückschritttaste als erste Taste erzielt den gleichen Effekt.
OPTIONEN¶
Die folgenden Optionen werden verstanden:
--icon=
Gibt einen Icon-Namen neben der Passwortabfrage an, der
in allen Agenten verwandt werden kann, die eine graphische Anzeige
unterstützen. Der Icon-Name sollte der
XDG-Icon-Bennennungsspezifikation[2] folgen.
--id=
Gibt eine Kennung für diese Passwortabfrage an.
Diese Kennung kann frei gewählt werden und erlaubt die Erkennung von
Abfragen durch beteiligte Agenten. Sie sollte das Untersystem, das die Abfrage
durchführt, und das angegebene Objekt, für das die Abfrage
erfolgt, enthalten. Beispiel: »--id=cryptsetup:/dev/sda5«.
--keyname=
Konfiguriert einen Kernelschlüsselbundnamen als
Zwischenspeicher für Passwörter. Falls gesetzt, wird das
Werkzeug versuchen, alle gesammelten Passwörter als Benutzer root in
den Kernelschlüsselbund unter dem Schlüssel mit dem angegebenen
Namen zu schieben. Falls mit
--accept-cached kombiniert, wird es auch
versuchen, solche zwischengespeicherten Passwörter aus dem
Schlüssel in dem Schlüsselbund des Kernels abzufragen, statt den
Benutzer sofort zu befragen. Durch Verwendung dieser Option kann der
Kernelschlüsselbund als effektiver Zwischenspeicher verwandt werden, um
das wiederholte Abfragen von Benutzern nach Passwörtern zu vermeiden,
falls es mehrere Objekte gibt, die mit dem gleichen Passwort entsperrt werden
können. Der zwischengespeicherte Schlüssel wird eine gesetzte
Zeitüberschreitung von 2,5 Minuten haben, nach der er aus dem
Kernelzwischenspeicher dauerhaft gelöscht wird. Beachten Sie, dass es
möglich ist, mehrere Passwörter unter dem gleichen
Schlüsselnamen zwischenzuspeichern. In diesem Fall werden sie als
NUL-getrennte Liste von Passwörtern gespeichert. Verwenden Sie
keyctl(1), um auf den zwischengespeicherten Schlüssel mittels
des Kernelschlüsselbunds direkt zuzugreifen. Beispiel:
»--keyname=cryptsetup«
--credential=
Konfiguriert ein Anmeldedatum, aus dem das Passwort
gelesen werden soll, falls es existiert. Dies kann in Zusammenhang mit den
Einstellungen
LoadCredential= und
SetCredential= in Unit-Dateien
verwandt werden. Siehe
systemd.exec(5) für Details. Falls nicht
angegeben ist die Vorgabe »password«. Diese Option hat keine
Auswirkung, falls kein Anmeldedatumsverzeichnis an das Programm
übergeben wird (d.h.
$CREDENTIALS_DIRECTORY nicht gesetzt ist)
oder falls kein Anmeldedatum mit dem angegebenen Namen existiert.
--timeout=
Gibt die Abfragezeitüberschreitung in Sekunden an.
Standardmäßig 90 s. Eine Zeitüberschreitung von 0 wartet
unendlich.
--echo=yes|no|masked
Steuert, ob die Eingabe des Benutzers ausgeben wird.
Akzeptiert einen logischen Wert oder die besondere Zeichenkette
»masked«, die auch die Vorgabe ist. Falls aktiviert, werden die
eingegebenen Zeichen 1:1 wieder ausgegeben, was für die Abfrage von
Benutzernamen und anderen, ungeschützten Daten nützlich ist.
Falls deaktiviert, werden die eingegebenen Zeichen in keiner Weise wieder
ausgegeben, der Benutzer bekommt für seine Eingabe keine
Rückmeldung. Falls auf »masked« gesetzt, wird ein
Sternchen (»*«) für jedes eingegebene Zeichen ausgegeben.
In diesem Modus wird die Ausgabe ausgeschaltet, falls der Benutzer die
Tabulatortaste (»↹«) betätigt. (Alternativ wird
die Ausgabe auch ausgeschaltet, falls der Benutzer die Rückschritttaste
(»⌫«) drückt, bevor andere Daten eingegeben
wurden).
--echo, -e
gleichbedeutend mit --echo=yes, siehe oben.
--emoji=yes|no|auto
Steuert, ob der Anfrage eine Sperre und ein
Schlüssel-Emoji (🔐) vorangestellt werden soll, falls die
TTY-Einstellungen dieses erlauben. Die Vorgabe ist »auto«, was
standardmäßig »yes« ist, außer
--echo=yes wurde übergeben.
--no-tty
Niemals auf aktuellen TTY nach Passwörtern fragen,
selbst falls eines verfügbar ist. Immer das Agentensystem
verwenden.
--accept-cached
Falls übergeben, zwischengespeicherte
Passwörter akzeptieren, d.h. vorher eingegebene
Passwörter.
--multiple
Bei der Verwendung zusammen mit --accept-cached
werden mehrere Passwörter akzeptiert. Dies gibt ein Passwort pro Zeile
aus.
--no-output
Passwörter nicht auf der Standardausgabe ausgeben.
Dies ist nützlich, wenn Sie mit --keyname= ein Passwort im
Kernelschlüsselbund speichern möchten, dies aber nicht auf dem
Bildschirm oder in den Protokollen auftauchen soll.
-n
Standardmäßig wird ein Zeilenumbruchzeichen
beim Schreiben eines erlangten Passworts auf die Standardausgabe
angehängt. Dies kann mit dem Schalter
-n ausgeschaltet werden,
ähnlich wie der Schalter des gleichen Namens beim Befehl
echo(1).
-h, --help
Zeigt einen kurzen Hilfetext an und beendet das
Programm.