enquanto eu não acho, que é seguro ler a senha em uma variável de ambiente, * Eu gosto do jeito de Aaron Toponce (créditos para ele: link ):
E assim, você pode usar várias contas com o mesmo arquivo de senha (mas, sim, não é recomendado usar o mesmo passe para contas diferentes)
Apenas o essencial (para explicação, veja o link acima):
First, I created a ~/.mutt/passwords file. The file is in plain text. Before encrypting it, here are its contents:
set imap_pass="password"
set smtp_pass="password"
I then encrypt that file with the following command:
% 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
The last two commands are to ensure that the temporary file you created for encryption is securely wiped from the disk using the GNU Shred utility. Now, you should only have an encrypted binary data file that contains your passwords. All that is left is to configure Mutt to decrypt them when starting up. You can set that easily in your Muttrc:
source "gpg -d ~/.mutt/passwords.gpg |"
update:
* não está em uma variável de ambiente, está na memória:
Citação: Mutt tem que armazenar a senha em algum lugar na memória, e ela usa uma configuração que você pode consultar para isso. Não é uma variável de ambiente, é uma memória mutável. Todo mundo com acesso a ele pode obter essa senha. Em um sistema Linux de ações, este é todo programa rodando sob seu usuário. Com sysctl kernel.yama.ptrace_scope = 1 nenhum outro programa pode acessar a própria memória. Mas se um invasor puder executar o código como seu usuário (o que ele pode fazer se ele comprometer qualquer programa), ele poderá simplesmente pegar a senha quando executar o gpg.