php ssh2 exec,无法使用PHP ssh2_exec()以超级用户特权执行命令

无法使用PHP ssh2_exec()以超级用户特权执行命令

如果我想在远程Linux机器上的/ var / www内创建一个文件夹test_folder,下面的代码和ssh命令似乎是正确的,但是由于缺少超级用户权限,我无法创建一个文件夹.我感到困惑的是,我已经包含了用户名和密码凭据,但是我仍然无法执行命令.

$con = new SSH2SFTP($addr,

new SSH2Password($user, $pass),

22);

$cmd = "sudo mkdir -p /var/www/test_folder";

$stream = ssh2_exec($con, $cmd);

stream_set_blocking($stream, true);

fclose($stream);

任何帮助,将不胜感激.谢谢.

解决方法:

您的方法大体上是正确的,但可以想象您在ssh进入远程计算机后正在输入linux命令.首次使用“ sudo”时,仍然需要输入密码.

因此,您可以如下修改命令:

$cmd = "echo '" . $pass . "' | sudo -S " . $cmd;

您的代码将如下所示:

$con = new SSH2SFTP($addr,

new SSH2Password($user, $pass),

22);

$cmd = "mkdir -p /var/www/test_folder";

$cmd = "echo '" . $pass . "' | sudo -S " . $cmd;

$stream = ssh2_exec($con, $cmd);

stream_set_blocking($stream, true);

fclose($stream);

希望能帮助到你.

标签:ssh,linux,php

来源: https://codeday.me/bug/20191123/2064809.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值