Eu tenho uma tarefa do cron executando um script no cron de "USER A" que criptografa muitos arquivos em um loop usando o comando gpg abaixo:
gpg --batch --cipher-algo AES256 --passphrase "PASSWORDISHERE" -c FILENAME
"USER A" tem permissões elevadas, não pode ser SSH para e só é logado por usuários normais quando necessário. Então, quando eu SSH em como eu (Bob), eu posso descriptografar os arquivos criptografados. No entanto, quando eu "su -" para o usuário A e tente descriptografar recebo o erro abaixo:
gpg: AES256 encrypted data
can't connect to '/home/USERA/.gnupg/S.gpg-agent': No such file or directory
gpg-agent[27859]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key
Eu fiz um monte de pesquisas e encontrei muitas coisas relacionadas a tty e pinentry. A única solução que encontrei foi usar chmod o+rw $(tty)
, mas essa não é uma boa solução a longo prazo para eu não mencionar que não quero usar esse método de qualquer maneira. Alguém tem alguma ideia melhor?
Tags permissions su gpg terminal pinentry