Basierend auf dieser äußerst nützlichen AntwortStarten Sie KeePassXC beim Booten Ich habe das gewünschte Ergebnis der Entsperrung keepassxc
beim Anmelden fast zum Laufen gebracht.
Ich (und ein anderer Benutzer, der zu demselben Problem einen Kommentar abgegeben hat) habe jedoch noch ein Problem, das es davon abhält, nützlich zu sein. Genauer gesagt gebe ich gemäß der verlinkten Antwort den Befehl ...
secret-tool lookup keepass <database_name> | keepassxc --pw-stdin <path-to-your-database>.kbdx
... und das funktioniert, wenn es keepassxc
gestartet wird ... aber ich erhalte diese Eingabeaufforderung in der nächsten Zeile nach dem Befehl
Database password:
und das Skript bleibt hängen, während es auf eine Eingabe wartet.
Die Teile des Skripts funktionieren ... Ich kann
secret-tool lookup keepass <database_name>
und ich bekomme das richtige Passwort eingetippt.
Ich kann ausstellen
echo <password> | keepassxc --pw-stdin <path-to-your-database>.kbdx
und es startet keepassxc
und meldet sich an … aber ich erhalte immer noch die Eingabeaufforderung und das Skript bleibt hängen.
Wenn ich mache
echo <password> | keepassxc --pw-stdin <path-to-your-database>.kbdx &
Ich erhalte immer noch die Eingabeaufforderung und bleibe hängen, aber ich kann drücken enter
und es funktioniert.
Es scheint also, dass ich irgendwie eins bereitstellen muss enter
?
- Ubuntu-Version: 18.04
- keepassxc-Version: 2.6.4
Antwort1
Kurze Antwort
Was Sie sehen, ist normales Verhalten. Das Terminal wird erst freigegeben, wenn KeePassXC beendet wird.
Lange Antwort
Die Database password:
Eingabeaufforderung, die Sie auf dem Terminal sehen, ist das Ergebnis der --pw-stdin
Option, die Sie der keepassxc
Option zugewiesen haben. Da es eine Pipe gibt, ist die Standardeingabe nicht Ihre Tastatur, sondern die Ausgabe des vorherigen echo
Befehls.
Solange KeepassXC läuft, ist Ihre Eingabeaufforderung blockiert. Das ist normal und passiert mit jedem anderen Programm. Versuchen Sie beispielsweise, es nautilus
über das Terminal zu starten.
Sie können die Eingabeaufforderung löschen, indem Sie den Prozess in den Hintergrund verschieben: Drücken Sie Ctrl+ Zund geben Sie dann ein, bg
um den Prozess im Hintergrund weiter laufen zu lassen. fg
bringt ihn wieder in den Vordergrund. Das ist die „traditionelle“ Terminalpraxis.
Wenn der Prozess im Vordergrund ist, wird das Terminal freigegeben, wenn Sie KeePassXC beenden, entweder durch Beenden in der grafischen Benutzeroberfläche oder durch Drücken von Ctrl+ Cim Terminal.
Dieses Verhalten bleibt unbemerkt, wenn Sie den Befehl nicht von einem Terminalemulator aus ausführen, z. B. von einem Desktop-Launcher oder einer Tastenkombination oder sogar über das Dialogfeld Alt„+ F2Ausführen“.