設置讓php能夠以root權限來執行exec() 或者 shell_exec()


一、查看啟動你php的進程的用戶是誰。

可以通過在命令行執行:ps -ef | grep php來看。或者在php中執行 echo exec('whoami') 來查看。centos下默認會是nobody。 nobody默認沒有任何權限。

此時先自己添加一個用戶和組。

/usr/sbin/groupadd xxxx
/usr/sbin/useradd -g xxxx -s /bin/bash xxxx

加完用戶后、vim /etc/passwd 里面就可以看到你添加的用戶了。

二、修改php啟動用戶為您剛添加的用戶

找到你得php安裝的地方的php-fpm.conf 。打開配置文件、編輯里面的 user = xxxx;  group = xxxx; (xxxx為您剛才添加的用戶)

重啟php-fpm(service php-fpm restart)

重復上面查看php啟動進程的用戶、應該已經變了。

三、添加剛才的用戶xxxx到sudoers里面

visudo //修改/etc/sudoers的內容
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
xxxx   ALL=(ALL)       ALL //新添加這一行
%xxxx        ALL=(ALL)       NOPASSWD: ALL  //設置xxxx組下面的用戶使用sudo不需要輸入密碼

四、到這里已經可以正常在exec中使用sudo  your command來執行命令了!!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM