gpt4 book ai didi

php - 如何通过浏览器在php中执行系统调用?

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:16 25 4
gpt4 key购买 nike

我有一个 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");

我选择制作一个 c 程序的原因是我需要密码在代码中但不可见,当我删除包含密码的 .c 文件时,我只剩下我的 .exe 而没有可见的密码。

我已经通过发出以下命令更改了 apache 用户的权限:

chown apache.apache /var/www/html/

并在/etc/sudoers 中添加了下一行:

apache   ALL=(ALL)    NOPASSWD:ALL

注意: 我唯一有问题的命令是 gpg,我可以使用我需要使用的任何其他命令进行系统调用,我什至可以运行 python 脚本和其他不支持的 C 程序'包含与 gpg 相关的任何内容。

希望尽快回复!我需要大量使用这个 encrypt_file!

最佳答案

检查/var/log/httpd/error_log 中的 error_log 我看到了这一行:

gpg: Fatal: can't create directory `/var/www/.gnupg': Permission denied

然后我在这个站点找到了解决方案 -> http://gnupg.10057.n7.nabble.com/Exi...pt-td7342.html

我将在 apache 的 error.log 中找到的带有 PATH 的 --homedir 选项添加到 gpg 命令中,它工作得很好!

感谢大家!

关于php - 如何通过浏览器在php中执行系统调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17516039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com