PHP 远程 Sudo 脚本执行

发布于 2024-12-06 06:42:16 字数 183 浏览 0 评论 0原文

我想要一个 PHP 脚本来使 shell 脚本以 root 身份在远程服务器上执行。该脚本本身需要执行 sudo 命令,因此需要以 root 身份执行。

有什么想法吗?

我尝试让 PHP ssh 登录并使用 sudo 执行,但速度太慢。

(我的两台服务器上都有 Ubuntu 10.04 和 PHP5)

I want a PHP script to cause a shell script to execute on a remote server as root. The script needs to execute sudo commands itself so it needs to be executed as root.

Any Ideas?

I tried having PHP ssh login and execute with sudo but it was too slow.

(I have Ubuntu 10.04 & PHP5 on both servers)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

为人所爱 2024-12-13 06:42:16

除非您运行许多单独的命令,否则 SSH 不应太慢。如果速度很慢,则可能是系统负载过高,或者您存在反向 DNS 问题。您可以尝试在 /etc/ssh/sshd_config 中设置 UseDNS no 并重新启动 sshd(如果这样可以加快速度) DNS 是问题所在。

该脚本本身需要执行 sudo 命令,因此需要以 root 身份执行。

如果脚本以 root 身份运行则没有意义,它不需要使用 sudo。

SSH shouldn't be to slow unless your running many individual commands. If it is slow either the systems are under high load or you have reverse DNS problems. You could try setting UseDNS no in /etc/ssh/sshd_config and restart sshd if that makes it faster DNS is the problem.

The script needs to execute sudo commands itself so it needs to be executed as root.

Doesn't make sense if the script is running as root it doesn't need to use sudo.

阳光①夏 2024-12-13 06:42:16

我最近发布了一个项目,允许 PHP 获取真实的 Bash shell 并与之交互。在这里获取它: https://github.com/merlinthemagic/MTS

下载后,您只需使用以下内容代码:

$shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1  = $shell->exeCmd('yourFirstCommand');
$return2  = $shell->exeCmd('yourSecondCommand');
//the return will be a string containing the return of the script
echo $return1;
echo $return2;

I recently published a project that allows PHP to obtain and interact with a real Bash shell. Get it here: https://github.com/merlinthemagic/MTS

After downloading you would simply use the following code:

$shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1  = $shell->exeCmd('yourFirstCommand');
$return2  = $shell->exeCmd('yourSecondCommand');
//the return will be a string containing the return of the script
echo $return1;
echo $return2;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文