在玩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...