登录时解锁 keepassxc 数据库...很接近,但如何消除剩余的问题?

登录时解锁 keepassxc 数据库...很接近,但如何消除剩余的问题?

基于这个非常有用的答案启动时启动 KeePassXCkeepassxc我几乎已经获得了登录时 解锁的预期结果。

但是,我(以及另一位回答评论同一问题的用户)还有一个问题,导致它无法使用。也就是说,根据链接的答案,我给出命令...

secret-tool lookup keepass <database_name> | keepassxc --pw-stdin <path-to-your-database>.kbdx

...这在keepassxc启动时有效...但我在命令后的下一行收到此提示

Database password:

并且脚本挂起等待输入。

剧本的各个部分都有效……我可以发布

secret-tool lookup keepass <database_name>

我输入了正确的密码。

我可以发出

echo <password> | keepassxc --pw-stdin <path-to-your-database>.kbdx

并且它启动keepassxc并登录...但我仍然收到提示并且脚本挂起。

如果我做

echo <password> | keepassxc --pw-stdin <path-to-your-database>.kbdx &

我仍然收到提示并挂起,但我可以点击enter并且它可以工作。

所以看起来我需要以enter某种方式提供?

  • Ubuntu 版本:18.04
  • keepassxc 版本:2.6.4

答案1

简短回答

您所看到的是正常行为。只有在 KeePassXC 终止后,终端才会被释放。

长答案

Database password:你在终端上看到的提示是你给选项提供的选项的结果。--pw-stdin由于keepassxc有一个管道,标准输入不是你的键盘,而是前一个命令的输出echo

只要 KeepassXC 正在运行,您的提示就会被阻止。这是正常现象,任何其他程序都会发生这种情况。例如,尝试nautilus从终端启动。

您可以通过将该进程移至后台来释放提示符:按Ctrl+ Z,然后键入bg以继续在后台运行该进程。fg将使其再次移至前台。这是“传统”终端做法。

当进程处于前台时,当您退出 KeePassXC 时,终端将被释放(无论是在图形用户界面中退出,还是在终端中按Ctrl+) 。C

当您没有从终端仿真器(例如从桌面启动器或快捷键绑定,甚至没有使用Alt+F2运行对话框)运行命令时,这种行为是不会被注意到的。

相关内容