shell_exec中的PHP sudo

www*_*com 8 php shell sudo shell-exec root

我想用root_exec以root身份执行命令.现在我知道这很危险,但请相信我,您需要使用MOD_AUTH登录并拥有正确的权限来访问此页面.这很安全.我怎么能这样做?

Cal*_*leb 13

问题不在于您的页面是否安全,问题是给php页面运行一些sudo命令的能力会将其提供给所有页面,包括服务器上任何站点上任何不安全页面上的任何注入代码.

也就是说,最好制作一个包装脚本,只执行需要执行的一个作业,然后让http用户只能访问那个ONE命令作为sudo

http  ALL=(ALL) NOPASSWD:/user/local/bin/your_wrapper_script.sh
Run Code Online (Sandbox Code Playgroud)


小智 13

您可以使用最新的SVN版本的phpseclib(纯PHP SSH实现)来执行此操作.例如.

<?php
include('Net/SSH2.php');

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

$ssh->read('[prompt]');
$ssh->write("sudo command\n");
$ssh->read('Password:');
$ssh->write("Password\n");
echo $ssh->read('[prompt]');
?>
Run Code Online (Sandbox Code Playgroud)