Разблокировка базы данных keepassxc при входе в систему… так близко, но как удалить оставшуюся проблему?

На основе этого чрезвычайно полезного ответа Запустите KeePassXC при загрузке , я почти получил желаемый результат разблокировки keepassxc при входе в систему для работы.

Однако у меня (и еще одного пользователя, который ответил и прокомментировал ту же проблему) осталась одна проблема, которая мешает его полезности. А именно, в соответствии с ответом по ссылке, я даю команда ...

поиск секретного инструмента keepass | keepassxc --pw-stdin .kbdx

... и это работает в этом keepassxc запущен ... но я получаю это приглашение на следующей строке после команды

Пароль базы данных:

, и сценарий зависает в ожидании ввода.

Части сценария работают ... Я могу выполнить

secret-tool lookup keepass

и набрать правильный пароль.

Я могу выдать

echo | keepassxc --pw-stdin .kbdx

, и он запускает keepassxc и входит в систему ... но я все еще получаю приглашение и скрипт зависает.

Если я сделаю

echo <пароль> | keepassxc --pw-stdin .kbdx &

Я все еще получаю приглашение и зависаю, но могу нажать , ввести , и это сработает.

Получается, что мне нужно как-то ввести ввод ?

  • Версия Ubuntu: 18.04
  • Версия keepassxc: 2.6.4
0
задан 17 April 2021 в 00:13

1 ответ

Короткий ответ

То, что вы видите, это нормальное поведение. Терминал будет освобожден только после завершения работы KeePassXC.

Длинный ответ

Пароль базы данных: подсказка , которую вы видите на терминале, является результатом опции --pw-stdin, которую вы включили в опцию keepassxc. Так как существует труба, стандартным вводом является не клавиатура, а вывод предыдущей команды echo.

До тех пор, пока запущен KeepassXC, приглашение блокируется. Это нормально и происходит с любой другой программой. Например, попробуйте запустить nautilus на терминале.

Вы можете отпустить запрос, переместив процесс в фоновом режиме: нажмите Ctrl+Z, затем наберите bg, чтобы продолжить выполнение процесса в фоновом режиме. fg снова выведет его на передний план. Это "традиционная" терминальная практика.

С выходом процесса на передний план, терминал будет освобожден при выходе из KeePassXC, либо от выхода в графическом интерфейсе пользователя, либо нажатием Ctrl+C в терминале.

Такое поведение незаметно, когда вы не запускаете команду от терминального эмулятора, например, от настольного пускового устройства или от привязки клавиш быстрого доступа, или даже используя диалог запуска Alt+F2.

1
ответ дан 23 April 2021 в 23:22

Другие вопросы по тегам:

Похожие вопросы: