我想为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
不,
您不使用nobody
. nobody
永远不应该用于任何事情。 nobody
是一个非人。
使用nobody
to do 意味着授予nobody
权限。一旦你这样做,你开始向下滑坡,最终你风与nobody
作为的成员wheel
组,su
荷兰国际集团,以根,因为它只是更容易,那么你的系统是由外星空间黑客PWNED和整个地球下降,它的ALL你的错。
不,
您不只是获取其他人的代码并执行它。
您甚至不需要使用自己的代码并执行它。
执行不受信任的用户输入是Bad And Wrong。
如果你想这样做,你可以启动完全隔离的虚拟机,在一个完全隔离的沙箱中编译和执行程序,没有网络连接,也不能访问外部机器。
如果 Stack Overflow 上的某个人暗示这以任何方式塑造或形成了一个好主意,那么这个人就是个白痴。这就是我们不让开发人员管理生产环境的原因。
归档时间: |
|
查看次数: |
526 次 |
最近记录: |