Отказано в разрешении awk при запуске через msmtp - PullRequest
1 голос
/ 10 июля 2020

Я использую gpg2 и awk вместе с msmtp для отправки электронных писем в сообщениях электронной почты. Это соответствующая часть моего .msmtprc файла

account gmail
host smtp.gmail.com
from myusername@gmail.com
auth on
port 465
user myusername@gmail.com
passwordeval gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | awk '/machine smtp.gmail.com login myusername@gmail.com/ {print $NF}'

, и так выглядит мой файл .authinfo.gpg

machine smtp.gmail.com login myusername@gmail.com port 465 password myverysecretpassword
machine imap.gmail.com login myusername@gmail.com port 993 password myverysecretpassword

По какой-то причине команда в приведенном выше passwordeval Поле работает нормально в терминале, т.е. выводит пароль, но когда я запускаю его с помощью msmtp

echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug --from=default -t myusername@gmail.com

awk возвращает ошибку разрешения.

loaded user configuration file /home/myusername/.msmtprc
falling back to default account
sh: 1: awk: Permission denied
msmtp: cannot read output of 'gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | awk '/machine smtp.gmail.com login myusername@gmail.com/ {print $NF}''

Я полностью нахожусь в потеря того, что здесь может быть не так. Эта проблема появилась после обновления ОС. Я также запустил chmod 600 для файла .msmtpr c. Любая помощь приветствуется.

Другая информация

  • Я пытался временно использовать простой пароль, и он работает
  • У меня пытался временно предоставить разрешения 777 для .msmtpr c, и это не сработало
  • Я пытался переустановить msmtp, и это не сработало
  • Я пытался используйте sed вместо awk, и я получаю идентичную ошибку разрешения (для sed).
  • Этот другой пост может быть связан? Это вроде как предполагает, что владелец .msmtpr c может иметь значение. В моем случае я являюсь владельцем файла.

Используемые версии

GNU Awk 5.0.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.2.0) Авторские права (C) 1989, 1991-2019 Free Software Foundation.

gpg (GnuPG) 2.2.19 libgcrypt 1.8.5 Авторские права (C) 2019 Free Software Foundation, In c.

msmtp версии 1.8.6 Платформа: x86_64-p c - linux -gnu Библиотека TLS / SSL: GnuTLS

1 Ответ

1 голос
/ 16 июля 2020

Благодаря совету от marlam я узнал, что эта проблема связана с чрезмерно ограничивающим профилем AppArmor для msmtp. Я вынужден предположить, что моя новая версия ОС более строгая в отношении использования msmtp (я думаю, это хорошо). К сожалению, это часто случается в Debian и Ubuntu и сбивает с толку многих пользователей. Команды, которые я использовал для ее решения:

sudo ln -s /etc/apparmor.d/usr.bin.msmtp /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.bin.msmtp 
...