我想创建一个php脚本来执行shell命令并返回其输出.服务器需要私钥.当我第一次决定测试时,我创建了这个:
<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
这很好用.但当我改变$command命令时,我真的想要运行:
$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
Run Code Online (Sandbox Code Playgroud)
它给了我这个输出:
You need root privileges to run this script
Run Code Online (Sandbox Code Playgroud)
我的猜测是我需要使用sudo.当然,这需要将pem文件放在服务器上的某个位置.假设我这样做,究竟应该$command是什么?我应该使用shell_exec(),exec(),system()或其他什么东西?
使用哪个 php 函数来启动脚本并不重要 - 缺少的是您的用户帐户的授权。
使用 sudo (通过 预先配置 Web 服务器用户以运行确切的命令而无需密码visudo,并在命令前加上 前缀sudo)或设置一个自行执行命令的 setuid 脚本。
| 归档时间: |
|
| 查看次数: |
27454 次 |
| 最近记录: |