簡體   English   中英

如何從 php (apache) 以 root 身份運行 shell

[英]How to run a shell as root from php (apache)

I am using ubuntu server 20.04 LTS, where I have multiple shell files, using php from apache I need to run multiple shell files from a browser but need to run as root.

我已經嘗試了命令 shell_exec 並添加了 sudoers (www-data) 並且沒有工作,我可以將其放入代碼以以 root 身份輸入並能夠執行 shell 腳本。

<?php
$code = shell_exec('echo "passwd" | sudo -u root -S sh /home/user/name.sh');
echo "<pre>$code</pre>";
?>

因為您正在以 www-data 的身份執行此腳本,而 www-data 沒有執行任何 sudo 命令所需的權限。

您可以通過這些步驟使其工作。 但是,這樣做會帶來重大的安全風險。

  1. 將 www-data 添加到 sudo 組。

$ sudo usermod -aG sudo www-data

  1. 為 www-data 設置密碼。

$ sudo passwd www-數據
[sudo] xxxxxx 的密碼:(rootPasswd)
新密碼:(www-data 的密碼)
重新輸入新密碼:(確認密碼)

現在確保您的 name.sh 將 +x 權限授予 www-data,並將密碼從您的 root 更改為 www-data:

$code = shell_exec('echo "passwd for www-data" | sudo -S sh /home/user/name.sh');

干杯,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM