ファイルを暗号化するためにシステム コール (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をたくさん使う必要があります!