bash - 通过 msmtp 运行时 awk 权限被拒绝

标签 bash email awk gnupg msmtp

我正在使用 gpg2awk与 msmtp 一起在 emacs 中发送电子邮件。这是我的 .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}''
我完全不知道这里可能有什么问题。操作系统升级后出现此问题。我也在 .msmtprc 文件上运行了 chmod 600。任何帮助是极大的赞赏。
其他信息
  • 我试过暂时使用普通密码,它可以工作
  • 我试图暂时授予 .msmtprc 777 权限,但没有奏效
  • 我试过重新安装 msmtp它没有用
  • 我试过使用 sed而不是 awk我得到了一个相同的权限错误(对于 sed)。
  • 这个其他 post可能有关系?这有点暗示 .msmtprc 所有者可能是相关的。就我而言,我是文件的所有者。

  • 使用的版本
    GNU Awk 5.0.1,API:2.0(GNU MPFR 4.0.2,GNU MP 6.2.0)
    版权所有 (C) 1989, 1991-2019 自由软件基金会。
    gpg (GnuPG) 2.2.19
    libgcrypt 1.8.5
    版权所有 (C) 2019 Free Software Foundation, Inc.
    msmtp 版本 1.8.6
    平台:x86_64-pc-linux-gnu
    TLS/SSL 库:GnuTLS

    最佳答案

    感谢 marlam 的建议,我发现这个问题是由于 msmtp 的 AppArmor 配置文件过于严格。我认为我的新操作系统版本在 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 
    

    关于bash - 通过 msmtp 运行时 awk 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62838673/

    相关文章:

    regex - 使用 "grep -n"和 echo : : double backslash interpreted

    email - GMail 似乎忽略回复

    bash - 将终端中同一位置的不同短语大写

    bash - 3 制表符分隔文件中的文件字符串匹配模式 awk

    bash - 如何删除 jq 输出中的双引号以在 bash 中解析 json 文件?

    linux - 使用 bash 脚本提取文件——发生错误

    linux - Bash 目录扁平化和重命名

    android - 使用 sdk android 从 gmail 发送和接收电子邮件

    Java - Lotus Notes - 从项目实例获取附件名称

    Bash 重定向 : since `&> foo` means `> foo 2>&1` , 有 `&>>` 吗?