在 Web 应用程序中读取私有 dkim 文件内容的用户权限

Posted

技术标签:

【中文标题】在 Web 应用程序中读取私有 dkim 文件内容的用户权限【英文标题】:User permissions for reading private dkim file contents within web app 【发布时间】:2016-01-31 21:13:45 【问题描述】:

就目前而言,当使用 Thunderbird 等客户端发送电子邮件时,我的邮件会使用 DKIM 签名。但是,当从 Web 应用程序生成电子邮件时,它们不会被签名。

我使用了一个名为 dkim 的 Rails gem 在发送时应用密钥,但是在 /var/cpanel/domain_keys/private/[filename] 中找到的私钥的位置和文件权限超出了 Rails 应用程序的用户权限范围。

我的 rails 应用程序当前在用户帐户“whatever”下运行。 'whatever' 是我的虚拟主机的用户帐户。我认为仅仅为了阅读 DKIM 私钥文件内容而将“whatever”用户添加到“mail”组是不明智的,那么我的解决方案是什么?我已经尝试过 ACL(执行命令 sudo setfacl -m u:whatever:r /var/cpanel/domain_keys/private/[filename] 时没有错误,但用户 'whatever' 仍然无法读取文件)。

我认为最简单的解决方案是在部署时将文件符号链接到我的应用目录中的某个位置,但我仍然需要 sudo 权限才能执行此操作。

【问题讨论】:

【参考方案1】:

解决方案是同时设置“执行”,而不仅仅是“读取”。您还需要对用户当前被拒绝访问的父目录执行此操作。

sudo setfacl -m u:whatever:rx /var/cpanel/domain_keys/private

然后

sudo setfacl -m u:whatever:rx /var/cpanel/domain_keys/private/[filename]

【讨论】:

以上是关于在 Web 应用程序中读取私有 dkim 文件内容的用户权限的主要内容,如果未能解决你的问题,请参考以下文章

DKIM对发送邮件的好处及使用方法

为 DKIM 签名生成 EML 文件

DKIM 中的 body 到底是啥意思

如何使用 Flutter for Web 从本地文件中读取内容?

将 DKIM 与 SMTP TELNET 连接一起使用

python web开发-flask中读取txt文件内容