Entsperren der Keepassxc-Datenbank beim Anmelden … so nah dran, aber wie lässt sich das verbleibende Problem beheben?

Entsperren der Keepassxc-Datenbank beim Anmelden … so nah dran, aber wie lässt sich das verbleibende Problem beheben?

Basierend auf dieser äußerst nützlichen AntwortStarten Sie KeePassXC beim Booten Ich habe das gewünschte Ergebnis der Entsperrung keepassxcbeim 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 keepassxcgestartet 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 keepassxcund 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 enterund 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-stdinOption, die Sie der keepassxcOption zugewiesen haben. Da es eine Pipe gibt, ist die Standardeingabe nicht Ihre Tastatur, sondern die Ausgabe des vorherigen echoBefehls.

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, bgum den Prozess im Hintergrund weiter laufen zu lassen. fgbringt 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“.

verwandte Informationen