1

ファイルを暗号化するためにシステム コール (centOS 6.0) を実行する C プログラムがあります。私のコードは次のとおりです。

#include <stdlib.h>
int main () {
 system ("gpg -c --batch --passphrase mypass file.txt");
 return 0;
}

実行可能オブジェクトは encrypt_file と呼ばれます。 CLI から直接 ./encrypt_file を実行すると、完全に実行され、file.txt.gpg を取得できますが、ブラウザー経由で実行しようとすると応答がありません。PHP のコード:

shell_exec("./encrypt_file");

私が ac プログラムを作成することを選択した理由は、パスフレーズをコードに含める必要がありますが、表示されないようにする必要があるためです。

次を発行して、Apacheユーザーへのアクセス許可を既に変更しました。

chown apache.apache /var/www/html/

/etc/sudoers に次の行を追加します。

apache   ALL=(ALL)    NOPASSWD:ALL

注:問題がある唯一のコマンドはgpgです。使用する必要のある他のコマンドでシステムコールを作成できます。Pythonスクリプトや、gpgに関連するものを含まない他のCプログラムを実行することもできます。

私は速い返事を願っています!このencrypt_fileをたくさん使う必要があります!

4

1 に答える 1