如何在linux中为php的用户“nobody”分配特定权限?

Cod*_*Mad 0 linux php xampp

我想为c程序做一个在线判断。我在 textarea 中捕获了用户输入并从中制作了 .c 文件。现在它想让 php 运行 linux 命令 `gcc code.c

我是这样做的

$cmd=gcc -std=c99 code.c -g -Wall

$last=exec($cmd,$out,$status);
Run Code Online (Sandbox Code Playgroud)

正如stackoverflow中所建议的那样。但是这个命令不起作用。它以状态 1 返回。但其他 linux 命令如 date、pwd 等工作正常。

我怀疑的问题是whoami命令说“没有人”。现在,这个“没人”可能没有运行 gcc 的权限。那么,请告诉我如何使其工作或如何为用户“nobody”分配权限?

我知道它非常不安全。但就这样吧。请给出解决方案以使命令正常工作。

vor*_*aq7 11

  1. 不,
    您不使用nobody. nobody永远不应该用于任何事情。 nobody是一个非人。
    使用nobodyto do 意味着授予nobody权限。一旦你这样做,你开始向下滑坡,最终你风与nobody作为的成员wheel组,su荷兰国际集团,以根,因为它只是更容易,那么你的系统是由外星空间黑客PWNED和整个地球下降,它的ALL你的错

  2. 不,
    您不只是获取其他人的代码并执行它。
    您甚至不需要使用自己的代码并执行它。
    执行不受信任的用户输入是Bad And Wrong
    如果你想这样做,你可以启动完全隔离的虚拟机,在一个完全隔离的沙箱中编译和执行程序,没有网络连接,也不能访问外部机器。

如果 Stack Overflow 上的某个人暗示这以任何方式塑造或形成了一个好主意,那么这个人就是个白痴。这就是我们不让开发人员管理生产环境的原因。

  • @CodeMad 我在帮助你。不要太直率,但如果你想做某事*这非常糟糕*并且你不知道如何去做,那么你就没有生意去尝试。你可以很容易地研究阻止你的代码自己工作的东西,也许你在研究中发现的东西会让你有所启发,因为很明显只是被告知是行不通的...... (2认同)