1

Webインターフェースを介して、特定の公開鍵が有効かどうかを確認しようとしています。bashコマンドは指定されたキーに基づいてgpg --import key.pub返されますが、私自身のセキュリティ上の懸念のためimport successful/failedに使用したくありません。$data = system("/usr/bin/gpg --import $key)代替手段はありますか?

4

2 に答える 2

1

OK、少しデバッグを行ったところ、次のことがわかりました。

nginxデーモンはnginx:nginx、ホームディレクトリなし、nologinシェルで実行されていました

私が実行したときsudo -u nginx php -r "echo system("gpg -k");"

私は得た/home/nginx/.gnupg: directory does not exist!

だから私は以下を実行しました:

mkdir -p /home/nginx/.gnupg; chown -R nginx:nginx /home/nginx/

次に、動作するかどうかをテストします。

sudo -u nginx php -r "echo system("gpg --homedir /home/nginx/.gnupg --dry-run --batch --import key.pub");

そして私は出力を得ました!

于 2012-11-21T17:58:50.277 に答える
0

拡張機能のインストールはオプションですか? PECL/gnupg拡張から gnupg_import ()gnupg_keyinfo()関数を組み合わせて使用​​できるためです。

gnupg_keyinfo()プロパティの配列を返します。この場合に役立つさまざまなキーがあります。参照: http://svn.php.net/viewvc/pecl/gnupg/trunk/gnupg.c?revision=330955&view=markup#l662

于 2013-12-05T16:51:11.363 に答える