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被壞人拿下,那麼服務器也就被人輕易的拿下了~~需慎重~~

相關文章
相關標籤/搜索