繁体   English   中英

使用PHP ssh2_exec()无法使用超级用户优先级执行命令

[英]Cannot execute commands with super user previleges using 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); 

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

你的方法大多是正确的,但想象一下你进入远程机器后输入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); 

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM