ubuntu - sudo in php exec

最近写防火墙的WEB版,须要在PHP中调用linux系统命令,可是防火墙有关的执行都须要管理员权限才能执行。php

在ubuntu下,Apache2的运行帐户默认是www-data,默认是不能经过sudo来得到管理员权限的。查了一下,试了几种作法,搞定了。linux

 

#1 为了以防万一,要查一下apache的运行帐户shell

<?php

exec("whoami",$output,$result);

print_r($output);

?>

 

运行一下,获得当前帐户www-dataapache

#2 给与www-data sudo权限,而且免密码ubuntu

命令行输入: nano /etc/sudoers  或者 visudo安全

插入一行  www-data ALL=(ALL:ALL) NOPASSWD:ALL服务器

以下图所示spa

 

#3 应用命令行

<?php
exec("sudo iptables-save",$output,$result);
print_r($result);
?>

如上所示,便可在管理员权限下执行shellcode

 

须要注意的是,如上的操做会给服务器带来很大的安全隐患,由于www-data用户不需密码就能够提高到管理员权限。若是Apache被坏人拿下,那么服务器也就被人轻易的拿下了~~需慎重~~

相关文章
相关标签/搜索