使用PHP执行unix shell命令

use*_*636 11 php unix shell

将使用文本框捕获命令.我被告知我必须使用该exec()函数来执行UNIX shell命令.

像这样的东西,用户在文本框中输入ls.该exec()函数将执行UNIX命令,该命令将显示在网页上.

我想知道如何使用PHP获取shell命令的输出并在Web浏览器中显示.

我不知道从哪里开始,因为我对PHP很新.

我正在使用Ubuntu.

Cha*_*les 12

exec

system

shell_exec

passthru

反引号?

Pfah!

真正的开发者用proc_open!它有让你们三个PHP流数据送入过程,并宣读了重大和明显的优势 stdoutstderr.这是其他流程执行功能根本不能很好地完成的事情.

它来自一些样板代码的小成本,所以它更冗长一点.我认为权衡是非常好的.

哦,从您的用户运行任意命令可能是您可能想到的最大的安全风险之一,但我现在假设您知道这一点.


enr*_*cog 11

你可以开始查看php手册:

系统程序执行

但是,像sdleihssirhc提到,WATCHOUT,这是非常危险的,你应该允许执行的一切!
如果您仍想这样做,要获得shell的输出,只需使用

exec
shell的输出将在第二个参数中传递.

例如:

exec('ls -la', $outputArray);
print_r($outputArray);
Run Code Online (Sandbox Code Playgroud)


Thi*_*ter 5

$output = system($command);

请参阅http://php.net/system并且不要忘记阅读有关安全性的警告。如果您让用户将任何数据传递给system()(或exec()等),就好像他们在您的服务器上有一个 shell。如果您没有正确清理传递给通过这些函数执行的程序的参数,则同样适用。