Если на вашем компьютере есть зашифрованный диск LUKS
, Nautilus
или Nemo
отобразит его в разделе Devices
как диск с небольшой блокировкой.
Когда вы щелкаете по нему, вам нужно ввести пароль. Если вы выберете remember this password forever
, он будет сохранен в вашем наборе ключей. При следующей загрузке щелчок по диску сразу же смонтирует его.
Как мне «немедленно смонтировать» такой терминал, для которого фраза-пароль хранится в связке ключей из терминала? Я хочу иметь сценарий автозапуска, который будет монтировать мой диск LUKS при входе в систему. Я не хочу сохранять свою фразу-пароль в сценарии, я хочу использовать эту фразу-пароль из набора ключей:
Passwords And Keys
, есть куча безымянных ключей. В их свойствах вы можете найти описание, например gvfs-luks-uuid=xxxxxxxxxxxx
, а также пароль для этого диска LUKS. Это то, что использует Ubuntu.
Один вариант, о котором я подумал, это python-gnomekeyring
, но он может получить только имя и пароль. Мне нужно то, что в GUI называется «Техническая информация», чтобы получить пароль для конкретного uuid
, потому что имя ключа всегда пусто.
Использовать Python Keyring Lib
Имеет удобный CLI для использования в скриптах оболочки.
pip install keyring
$ keyring set system username
Password for 'username' in 'system':
$ keyring get system username
password
Вы можете использовать секретные инструменты для хранения и извлечения пароля из набора ключей.
Чтобы сохранить новый пароль:
secret-tool store --label='Password for mydrive' drive mydrive
Я позволю вам проверить, как он выглядит. Чтобы найти его (эту команду легко вставить в ваш скрипт):
secret-tool lookup drive mydrive
Я думаю, что единственный ответ - через python
, но есть две ошибки, которые усложняют ситуацию.
Если вы работаете со скриптами и брелоки, пожалуйста, отметьте, что эти ошибки влияют и на вас.
Что касается части python
Вот пример:
#!/usr/bin/env python
import gnomekeyring as gk
keyring = 'login'
keyItems = gk.list_item_ids_sync(keyring)
for keyItem in keyItems:
key = gk.item_get_info_sync(keyring, keyItem)
if key.get_display_name() == 'KeyName you are looking for':
# Your script here using key.get_secret()
print "Password:", key.get_secret()
Если вам известен какой-либо другой способ, например с помощью простых команд bash, пожалуйста, дайте нам знать.