如何分配特定权限的用户“没有人”的PHP在Linux中?

我想为c程序做一个在线评判。 我在textarea中捕获用户input,并从中创build.c文件。 现在它想让PHP运行linux命令`gcc code.c

我做了

$cmd=gcc -std=c99 code.c -g -Wall $last=exec($cmd,$out,$status); 

如在stackoverflowbuild议。 但是这个命令不起作用。 它返回状态1.但其他Linux命令,如date,密码等工作正常。

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

我知道这是非常不安全的。 但是,让它成为。 请给出解决scheme,使命令工作。

  1. 没有
    你不使用nobodynobody都不应该被用于任何事情。 nobody是无人的。
    使用nobody做事是指授予nobody权限。 一旦你这样做了,你就开始滑下坡路,最终结束的时候, nobodywheel组的成员,因为它更容易,然后你的系统被外星人的空间黑客摧毁,整个星球就会掉落这都是你的错

  2. 没有
    你不只是采取其他人的代码,并执行它。
    你甚至不用自己的代码并执行它。
    执行不可信的用户input是错误的和错误的
    如果你想做到这一点,你可以旋转完全隔离的虚拟机,在完全隔离的沙箱中编译和执行程序,而不需要networking连接,也无法访问外部机器。

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

停下来,不要过去,不要收集互联网疱疹。

请拜托调查Docker ,了解为什么类似这样的问题是更好的解决scheme。