解决由于文件系统权限不正确导致的 GnuPG“get_key failed”错误

解决由于文件系统权限不正确导致的 GnuPG“get_key failed”错误

情况:我们计划使用 PHP 的 GnuPG 扩展来加密/解密文件。

目前我们已经使用 GPG 生成的密钥设置了一些测试用例。

生成的文件位于:

/Users/username/.gnupg/

我能够获取keyinfo我想要用来加密/解密的密钥,但是当我尝试使用时addencryptkey,我得到:

(E_WARNING: 2): gnupg::addencryptkey() [gnupg.addencryptkey]: get_key failed

~/.gnupg我认为这是由于文件夹和所附文件的权限造成的。

这些文件归我所有- username,但 apache 以 身份运行www

几天前我确实这样做了,但似乎每次我使用 GPG 钥匙串访问导入/导出密钥时,文件夹的权限都会发生变化。

问题:允许 PHP 的 GnuPG 添加加密和解密密钥需要哪些确切的权限?

答案1

Michael 的“660”答案对我来说没用。我能够获得足够权限而不收到“不安全权限”警告的唯一方法是设置 700。不多不少。

以下是我的命令(Ubuntu 版本)

sudo -i
cd /var/www/.gnupg
chown -R www-data:www-data .
chmod -R 700 .

另外,就我而言,问题在于 gnupg_addencryptkey 旨在加载已导入的密钥指纹。因此,根据 PHP 文档,我改用了 gnupg_import 函数:http://php.net/manual/en/function.gnupg-import.php

相关内容