I am running a cli-script, that requires a exec('sudo ...'); call. I know it is not safe on the web, but how can it be done in cli? The script is executed by a user known as "btcdbit", who is in the sudoers file.
3条回答 默认 最新
- duangang4001 2011-10-09 21:36关注
In my experience setting the NOPASSWD option doesn't always work and even if it does it seems unsafe. Seems to me that a better approach - if you're able to use it - would involve using phpseclib to do sudo through SSH. eg.
<?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 "); $output = $sftp->read('#Password:|username@username:~\$#', NET_SSH2_READ_REGEX); echo $output; if (preg_match('#Password:#', $lines)) { $ssh->write("password "); echo $sftp->read('username@username:~$'); } ?>
The website "sudo in php" elaborates
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置