PHP 用root執行指令碼

2021-09-26 13:16:43 字數 820 閱讀 6548

1、首先寫個c程式,命名為:run.c 放在目錄/var/www下 用來互動uuid **執行

#include 

#include 

#include 

#include 

int main()   

uid_t uid ,euid;   

//char cmd[1024]; //變數暫時未使用   

uid = getuid() ;   

euid = geteuid();   

printf("my uid :%u/n",getuid()); //這裡顯示的是當前的uid 可以注釋掉.    

printf("my euid :%u/n",geteuid()); //這裡顯示的是當前的euid    

if(setreuid(euid, uid)) //交換這兩個id    

perror("setreuid");   

printf("after setreuid uid :%u/n",getuid());   

printf("afer sertreuid euid :%u/n",geteuid());   

system("systemctl restart network"); //執行指令碼 重啟網路為列,也可以用引數代替 如果用引數的話許可權太大  

return 0;   

2、使用gcc -o run -wall run.c   編譯run.c檔案

3、root下:chmod u+s run

4、php呼叫

system('/var/www/run', $retval);

php 非同步執行指令碼

這裡說的非同步執行是讓php指令碼在後台掛起乙個執行具體操作的指令碼,主指令碼退出後,掛起的指令碼還能繼續執行。比如執行某些耗時操作或可以並行執行的操作,可以採用php非同步執行的方式。主指令碼和子指令碼的通訊可以採用外部檔案或memcached的方式。原理就是通過exec或system來執行乙個外...

linux下切換root使用者並執行指令碼

1 安裝expect expect su實現輸入su命令之後自動填寫密碼的功能 yum install expect y centos sudo apt get install expect ubuntu 2 編寫expect指令碼 vim test1.sh usr bin expect spawn...

Pycharm以root許可權執行指令碼的方法

因為許可權不夠,導致pycharm在執行指令碼時報錯 socket.error errno 1 operation not permitted 網上有一些修改檔案使得pycha執行指令碼時可以不需要密碼的以root許可權執行。但是大多操作雷同,估計是複製貼上的,而且下方有幾條評論表示ide報錯。在跟...