情况:我们计划使用 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