PHP執(zhí)行l(wèi)inux系統(tǒng)命令
1、在安裝完P(guān)HP和Apache2后,我們需要安裝PHP命令行解釋器。
2、打開linux命令行。找到linux環(huán)境下,php可執(zhí)行文件的目錄。如圖所示。我的目錄為/usr/local/server/php/bin,將這個(gè)目錄記下。
3、PHP 中執(zhí)行系統(tǒng)命令有幾種方式:system():和 C 語言中的 system() 函數(shù)的用法是一樣的,參數(shù)為命令行,成功則返回命令輸出的最后一行,失敗則返回 FALSE。shell_exec():執(zhí)行命令,然后返回命令執(zhí)行后的 stdout 輸出。
如何讓PHP通過ROOT權(quán)限來執(zhí)行LINUX命令
\x0d\x0a\x0d\x0a可以用system(),exec(),passthru()這三個(gè)函數(shù)實(shí)現(xiàn)\x0d\x0a雖然這三個(gè)命令都能執(zhí)行l(wèi)inux系統(tǒng)的shell命令,但是其實(shí)他們是有區(qū)別的:\x0d\x0a system() 輸出并返回最后一行shell結(jié)果。
把php的運(yùn)行用戶改為root,這樣可能會(huì)存在一定的風(fēng)險(xiǎn)。在apache里面指定可以對某個(gè)root權(quán)限的文件或目錄做操作,該辦法沒試驗(yàn)過。如果你能試驗(yàn)成功的話,希望反饋一下哦。
權(quán)限問題 修改以后PHP可以運(yùn)行部分命令了,但是部分外部程序和命令仍然不能運(yùn)行。使用sudo返回失敗。于是運(yùn)行“whoami”查看,環(huán)境下php-frm的運(yùn)行角色是www。于是修改sudoers文件。
首先啟動(dòng)系統(tǒng),使用客人身份登錄,如下圖所示。登錄后會(huì)有提示,執(zhí)行的操作在退出后都會(huì)消失。這時(shí)打開終端,想切換到root模式下,如下圖所示。然后點(diǎn)擊右上角的圖標(biāo),選擇root用戶或選擇切換用戶,如下圖所示。
第一步,切換到root下第二步,安裝super先到ftp://下載super-10-i38rpm。這是一個(gè)RPM文件,其它包括了兩個(gè)工具:setuid和super,以及它們的文檔和man手冊。
在linux部署php項(xiàng)目的方法:首先打開終端。yum install php php-devel輸入確認(rèn)安裝,等待20秒左右及安裝成功。
php如何實(shí)現(xiàn)隨意執(zhí)行l(wèi)inux命令(任意讀寫,刪除等)
\x0d\x0a\x0d\x0a可以用system(),exec(),passthru()這三個(gè)函數(shù)實(shí)現(xiàn)\x0d\x0a雖然這三個(gè)命令都能執(zhí)行l(wèi)inux系統(tǒng)的shell命令,但是其實(shí)他們是有區(qū)別的:\x0d\x0a system() 輸出并返回最后一行shell結(jié)果。
php.ini的配置有問題。由于php是0以上的版本,取消了安全模式,所以考慮PHP.ini文件配置。打開php配置文件,里面有一行disabel_function的值,此處記錄了禁止運(yùn)行的函數(shù),在里面講exec和shell_exec,system等函數(shù)刪除。
php執(zhí)行l(wèi)inux的命令用system或exec就可以,只要打開safemode,但是一些系統(tǒng)底層的沒有執(zhí)行命令的不允許調(diào)用哦,實(shí)在有些命令例如zip之類想用的話,直接用php寫入一個(gè)shell腳本文件再exec那個(gè)sh就好了。