PHP使用命令函數(shù)執(zhí)行shell腳本

PHP使用命令函數(shù)執(zhí)行shell腳本

  • CentOS 7.6 64位
  • 寶塔Linux面板

運(yùn)行環(huán)境

  • Nginx 1.17.1
  • PHP-7.1

步驟

01 解除禁用的命令函數(shù)

出于安全考慮,命令函數(shù)是被禁用,我安裝寶塔是被禁用的

#修改php.ini文件
disable_functions =  #被禁用函數(shù)都在這一行 把需要解除的函數(shù)刪除就行了 
system exec passthru shell_exec #PHP常用命令函數(shù)
02 PHP調(diào)用Linux命令權(quán)限不足的解決方法

關(guān)于這個(gè)問題我踩的太多坑了,這也是我要寫這篇文章的原因,我本人記性不好,所以記錄一下

  • 01 查看啟動(dòng)你PHP的進(jìn)程的用戶是誰
ps -ef | grep php #通過終端命令行執(zhí)行查詢
echo exec('whoami'); #通過PHP命令函數(shù)查詢 總來說默認(rèn)沒有任何權(quán)限
  • 02 添加一個(gè)用戶和組 終端命令↓↓↓
/usr/sbin/groupadd wroot  # wroot 用戶可以自定義的
/usr/sbin/useradd -g wroot -s /bin/bash wroot
vim /etc/passwd #查看你剛剛添加的用戶 是否添加成功
wroot 是剛剛添加的
  • 03 修改PHP啟動(dòng)用戶為您剛添加的用戶
    php-fpm.conf 修改這個(gè)配置文件
    編輯成 user = wroot; group = wroot; (wroot為您剛才添加的用戶)
service php-fpm restart #命令重啟php-fpm
ps -ef | grep php #命令查看PHP啟動(dòng)進(jìn)程的用戶、是否已經(jīng)變了
  • 04 添加剛才的用戶wroot到sudoers里面
visudo #命令修改 /etc/sudoers的內(nèi)容
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
wroot   ALL=(ALL)       ALL //新添加這一行
%wroot  ALL=(ALL)      NOPASSWD: ALL  
#NOPASSWD為設(shè)置用戶組下面的用戶使用sudo不需要輸入密碼

以上操作完成,但是我發(fā)現(xiàn)依然不能解決PHP命令shell腳本問題

  • 05 關(guān)于linux 用vi命令使用vi編輯(外話)
s #vi界面出現(xiàn) INSERT后,開始進(jìn)行編輯操作 編輯完畢后,按ESC鍵,跳到命令模式
:w #保存,不退出vi
:w! #強(qiáng)制保存,不退出vi
:w file #將修改另外保存到file中,但不退出vi
:wq 或 :x #保存,并退出vi
:wq! #強(qiáng)制保存,并退出vi
:q #不保存,并退出vi
:q! #不保存,并強(qiáng)制退出vi
:e! #放棄所有修改,從上次保存文件開始再編輯
03 但第二部操作還是無法解決PHP命令shell腳本問題

還是權(quán)限問題,最后添加www-data ALL=(ALL) NOPASSWD: ALL解決了

www-data ALL=(ALL) NOPASSWD: ALL #編輯visudo
編輯visudo添加www-data

編寫test.sh腳本,簡單的一個(gè)shell腳本 創(chuàng)建一個(gè)文件夾

#! /bin/sh
mkdir /www/a #注意.sh文件需要給執(zhí)行權(quán)限
#PHP
system('sudo /usr/bin/test.sh') #注意絕對路徑
system('sudo /www/wwwroot/wert/prt.sh') #例如路徑

內(nèi)容部分來源網(wǎng)絡(luò),我只是執(zhí)行操作整理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容