Мои пароли для imap и smtp одинаковы, а версия mutt использует интегрированные настройки smtp.
Я не хочу хранить свой пароль в каком-либо скрипте, шифровать его с помощью pgp/openssl или использовать менеджеры паролей кошельков. Также я хочу именно:
- быть спрошенным только один раз для ввода пароля
- один и тот же пароль будет использоваться для imap и smtp (чтобы не запрашиваться снова в рамках одного сеанса Mutt)
Каков наилучший способ этого добиться?
Мое уже найденное решение использует следующие строки конфигурации .muttrc:
set imap_pass=`read -s -p 'mail-password : ' mailpass ; echo $mailpass`
set smtp_pass=$imap_pass
и это ~хорошо для моих нужд. Просто потому, что я новичок в mutt, мне интересно, есть ли какой-то лучший способ ...
(... например, использование пропущенных imap_pass и smtp_pass, что приведет к тому, что Mutt запросит imap_pass, а затем каким-то образом убедит Mutt использовать то же самое для smtp).
решение1
хотя я не думаю, что безопасно считывать пароль в переменную окружения, *
мне нравится способ Аарона Топонсе (спасибо ему:https://pthree.org/2012/01/07/encrypted-mutt-imap-smtp-passwords/):
И таким образом, вы можете использовать несколько учетных записей с одним и тем же файлом паролей (но, да, не рекомендуется использовать один и тот же пароль для разных учетных записей)
Только самое необходимое(для объяснения см. ссылку выше):
Сначала я создал файл ~/.mutt/passwords. Файл в виде обычного текста. Перед шифрованием вот его содержимое:
set imap_pass="password"
set smtp_pass="password"
Затем я шифрую этот файл с помощью следующей команды:
% gpg -r [email protected] -e ~/.mutt/passwords
% ls ~/.mutt/passwords*
/home/user/.mutt/passwords /home/user/.mutt/passwords.gpg
% shred ~/.mutt/passwords
% rm ~/.mutt/passwords
Последние две команды гарантируют, что временный файл, созданный вами для шифрования, будет надежно стерт с диска с помощью утилиты GNU Shred. Теперь у вас должен быть только зашифрованный двоичный файл данных, содержащий ваши пароли. Осталось только настроить Mutt на их расшифровку при запуске. Вы можете легко настроить это в вашем Muttrc:
source "gpg -d ~/.mutt/passwords.gpg |"
обновлять:
* это не в переменной окружения, это в памяти:
цитата:Mutt должен хранить пароль где-то в памяти, и он использует настройку, которую вы можете запросить. Это не переменная окружения, это память Mutt. Каждый, у кого есть к ней доступ, может получить этот пароль. В стандартной системе Linux это каждая программа, запущенная под вашим пользователем. С sysctl kernel.yama.ptrace_scope = 1 никакая другая программа не может получить доступ к самой памяти. Но если злоумышленник может запустить код от вашего пользователя (что он может сделать, если скомпрометирует любую программу), то он может просто перехватить пароль, когда вы запускаете gpg.