Webインターフェースを介して、特定の公開鍵が有効かどうかを確認しようとしています。bashコマンドは指定されたキーに基づいてgpg --import key.pub
返されますが、私自身のセキュリティ上の懸念のためimport successful/failed
に使用したくありません。$data = system("/usr/bin/gpg --import $key)
代替手段はありますか?
2 に答える
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");
そして私は出力を得ました!
拡張機能のインストールはオプションですか? PECL/gnupg拡張から gnupg_import ()とgnupg_keyinfo()関数を組み合わせて使用できるためです。
gnupg_keyinfo()
プロパティの配列を返します。この場合に役立つさまざまなキーがあります。参照: http://svn.php.net/viewvc/pecl/gnupg/trunk/gnupg.c?revision=330955&view=markup#l662