首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP-CLI Sudo执行

PHP-CLI Sudo执行
EN

Stack Overflow用户
提问于 2011-10-03 09:44:17
回答 3查看 682关注 0票数 1

我正在运行一个cli-script,它需要一个exec('sudo ...');调用。我知道它在网络上是不安全的,但是在cli中怎么做呢?该脚本由sudoers文件中名为"btcdbit“的用户执行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-10 05:36:01

根据我的经验,设置NOPASSWD选项并不总是有效的,即使它有效,看起来也是不安全的。在我看来,更好的方法是使用phpseclib通过SSH执行sudo。例如:

代码语言:javascript
复制
<?php
include('Net/SSH2.php');

$sftp = new Net_SSH2('www.domain.tld');
$sftp->login('username', 'password');

echo $sftp->read('username@username:~$');
$sftp->write("sudo ls -la\n");
$output = $sftp->read('#Password:|username@username:~\$#', NET_SSH2_READ_REGEX);
echo $output;
if (preg_match('#Password:#', $lines)) {
    $ssh->write("password\n");
    echo $sftp->read('username@username:~$');
}
?>

网站"sudo in php“详细阐述了

票数 2
EN

Stack Overflow用户

发布于 2011-10-03 09:55:16

只要btcdbit在您希望它能够运行的程序的sudoers中,您就应该能够使用任何PHP函数(如execsystem )来运行它。如果您不希望在向btcdbit请求密码时被捕获,请确保在sudoers中使用NOPASSWD选项(例如,参见http://www.ducea.com/2006/06/18/linux-tips-password-usage-in-sudo-passwd-nopasswd/ )。

票数 1
EN

Stack Overflow用户

发布于 2011-10-03 09:56:22

它应该和exec一样简单(‘/usr/bin/sudo {script}')。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7630420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档