如何讓PHP通過ROOT許可權來執行LINUX命令
阿新 • • 發佈:2018-12-19
一般 PHP 在 LINUX 伺服器上執行 shell 命令時,只能擁有 www:www 賬戶許可權,想執行一些系統命令是沒有許可權的,如重啟 apache,因為控制 apache 需要 root 許可權,因此下面的辦法可以讓 PHP 執行 ROOT 許可權的命令。
1、建立一個 C 語言檔案,test.c,裡面內容如下
#include#include#include <sys/types.h>#include <sys/wait.h>#includevoid main(){pid_t pid;uid_t uid,euid;uid=getuid();euid=geteuid();setreuid(euid,uid);//下面程式碼中加入想讓 PHP 執行的命令,如重啟 apachesystem(“/etc/init.d/httpd restart”);}
2、編譯這個 c 檔案 gcc -o test test.c,生成 test 這個可執行檔案
3、給這個 test 檔案賦 root 許可權,並且加入任何使用者都能訪問的許可權
chown root:root testchmod u+s test
4、在 PHP 中呼叫 test 這個執行檔案,來實現重啟 apache