我有一个 C 程序可以进行系统调用(centOS 6.0)来加密文件,我的代码是:
#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 程序的原因是我需要密码在代码中但不可见,当我删除包含密码的 .c 文件时,我只剩下我的 .exe 并且没有可见的密码。
我已经通过发出以下命令更改了对 apache 用户的权限:
chown apache.apache /var/www/html/
并在 /etc/sudoers 中添加了下一行:
apache ALL=(ALL) NOPASSWD:ALL
注意:我唯一有问题的命令是 gpg,我可以使用我需要使用的任何其他命令进行系统调用,我什至可以运行 python 脚本和其他不包含与 gpg 相关的任何内容的 C 程序。
我希望一个快速的答复!我需要大量使用这个 encrypt_file!