私はファイルを暗号化するためにシステムコール(centOS 6.0)を作るCプログラムを持っています、私のコードは次のとおりです:
#include
int main() {
system ("gpg -c --batch --passphrase mypass file.txt");
return 0;
}
実行可能オブジェクトは、encrypt_file
./encrypt_fileをCLIで直接実行すると、file.txt.gpgが完全に実行されますが、ブラウザで実行しようとすると応答がありません。
phpのコード:
shell_exec("./encrypt_file");
私がCプログラムを作成する理由は、パスフレーズがコードに含まれていても表示されないようにすることです。パスフレーズを含む.cファイルを削除すると、.exeファイルとパスフレーズは表示されません。
私はすでに次のコードを発行して、アクセス権をapacheユーザーに変更しました。
chown apache.apache /var/www/html/
/ etc/sudoersに次の行を追加しました:
apache ALL=(ALL) NOPASSWD:ALL
NOTE: The only command I have issues is gpg, I can make a system call with any other command that I needed to use, I can even run python scripts, and other C programs that doesn't contain anything related to gpg.
私は速い返信を願っています!私はこのencrypt_fileをたくさん使う必要があります!