【问题标题】:PHP GnuPG segfaults in a webserver网络服务器中的 PHP GnuPG 段错误
【发布时间】:2013-01-14 17:18:14
【问题描述】:

灵感来自 http://devzone.zend.com/1278/using-gnupg-with-php/ 并在 @PHP ASCII Armored PGP encrypted string 的帮助下

在 CLI 中运行时,我能够使用第 3 方公钥对字符串进行 GnuPG 加密。

  • 将 GNUPGHOME 设置为全球可读位置
  • chmod 密钥环文件到 666
  • cli php 加密字符串就好了

PHP 5.2.10 (cli) (built: Nov 13 2009 11:44:05)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

但是……

当调用 addencryptkey 通过网络服务器(CentOS 上的 Apache)运行相同的脚本时,我得到“退出信号分段错误 (11)”。

apache 错误日志

[notice] child pid 30682 exit signal Segmentation fault (11)

系统日志中没有任何价值...

任何指针?谢谢!


代码(没有惊天动地的):

// GnuPG code
putenv("GNUPGHOME=/opt/.gnupg/");

$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION); 
$gpg -> setarmor(1);

try 
{
    $info = $gpg -> addencryptkey("KEY");
    var_dump($info);
    $enc = $gpg -> encrypt($token);
    var_dump($enc);
} 
catch (Exception $e) {
    echo 'ERROR: ' . $e->getMessage();
}

drwxr-xr-x  2 root root  4096 Jan 14 11:29 .gnupg

[root@dev-lamp01 opt]# ll .gnupg/
total 28
-rw-rw-rw- 1 root root 9224 Jan 14 10:23 gpg.conf
-rw-rw-rw- 1 root root  325 Jan 14 10:25 pubring.gpg
-rw-rw-rw- 1 root root    0 Jan 14 10:20 pubring.gpg~
-rw-rw-rw- 1 root root  600 Jan 14 11:29 random_seed
-rw-rw-rw- 1 root root    0 Jan 14 10:20 secring.gpg
-rw-rw-rw- 1 root root 1200 Jan 14 10:25 trustdb.gpg

【问题讨论】:

    标签: php gnupg


    【解决方案1】:

    哦,好吧-我的错-我这样做了

    chmod -R 777 
    

    在我的 GNUPGHOME 上 - 一切正常

    认为它对 666 很满意(而 CLI 对 rw 很满意)

    【讨论】:

    • 不要授予不需要的权限。确定你的$GNUPGHOME 是 666?您无法打开没有执行权限的文件夹,因此必须是允许您打开它的权限,但不是您的网络服务器。考虑将所有权更改为您正在处理的用户(让我们讨论以 root 身份工作或不在其他地方工作)并将文件的组更改为 www-data (或您的 apache 用户所在的任何组),因此您不能设置它是世界可写的。对于里面的文件,你应该可以对每个文件(如果没有文件夹)设置权限-1,因为它们都不会被执行,所以这里也不需要-R
    • 顺便说一句,很好的问题,我可能对答案没有任何线索。 ;)
    • 仍在争取权限 - gnupg 拒绝使用低于 777 的任何内容。不要放弃 - 谢谢!
    • 执行ls -l $GNUPGHOMEps ax |grep apached(前提是您使用的是apache)。显示了哪些用户/组?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多