linux下php呼叫系統命令(root許可權)

2021-06-08 04:09:20 字數 1662 閱讀 8290

在玩c 以前 玩過一段時間的php, 哪個時候需要用php 來執行root命令,一直未果,直到有一天搜尋到了super這個外掛程式.  

隨著玩c的日子多了.發現可以用c語言來包裹 要執行的外部命令. 實驗了一下.成功了. 

不需要任何外部工具就可以實現用php 執行root命令. 

我下面就把方法發布給大家,有需求用php來執行root命令的朋友可以不用發愁了. 

平台:linux. 實驗命令iptables  當前的目錄是/var/www/html/http 

寫程式的時候 用root使用者 

大家都知道iptables 非root使用者不能執行. 

首先寫個c程式 

命名為:ipt.c 

#include 

#include 

#include 

#include 

int main() 

[/code] 

編譯該檔案 gcc -o ipt -wall ipt.c 

在該路徑下生成ipt 這個可執行檔案. 

如果現在用php網頁呼叫 該ipt的話,即使setreuid了 也是不行的. 

接下來要做的是chmod u+s ./ipt 

ls 一下 

-rwsr-xr-x  1 root root 5382 jul  2 21:45 ipt 

s位已經設定上了. 

再寫乙個php頁面呼叫它. 

在瀏覽器中瀏覽. 

[color=red]chain input (policy accept) 

target     prot opt source               destination          

chain forward (policy drop) 

target     prot opt source               destination          

accept     all  --  anywhere             anywhere            state related,established  

chain output (policy accept) 

target     prot opt source               destination         [/color] 

[color=blue]my uid :48 

my euid :0 

after setreuid uid :0 

afer sertreuid euid :48[/color]

**:chmod u+s

chmod u+s就是讓這個程式不管由哪個使用者啟動,都以root身份執行,但前提是這個使用者首先要有對這個程式的執行許可權,否則他根本就啟動不了這個程式。也就是說,u+s許可權決定的是程式執行的身份,而x許可權決定的是程式是否能被執行

參考自

PHP如何呼叫Linux系統下的命令

在程式設計開發過程中,有時候難免會需要呼叫linux系統下的 shell 命令來輔助完成一些相關的操作,那麼在 php 程式設計開發中如何才能呼叫系統下的shell命令呢?下面介紹3種呼叫的方法 shell exec system exec 1 shell exec command 功能 將指令傳至...

php呼叫外部命令(Linux下)

exec cp fpath.tpath,out,status 複製檔案,fpath為原檔案位址,tpath為要複製到的位置路徑,status為執行結果返回值。include conn to.php top sql select from uchome pic where 1 order by pic...

php 呼叫系統命令

system 與 exec 兩者區別與聯絡 都會返回最後一行,命令執行成功的return返回值,區別 system直接將輸出內容echo出來,而exec將每一行輸出內容儲存到陣列 output裡。echo system last line system ls retval echo last lin...