[英]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 命令所需的權限。
您可以通過這些步驟使其工作。 但是,這樣做會帶來重大的安全風險。
$ sudo usermod -aG sudo 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.