從PHP 呼叫需要SUDO 的Shell 腳本
執行需要提升權限的shell 腳本(例如需要SUDO 的腳本)在以下情況下可能會很困難:透過PHP 的shell_exec 函數呼叫它們。預設情況下,shell_exec 沒有繞過密碼提示所需的權限。
解決方案:修改sudoers 檔案
要解決此問題,您可以修改sudoers檔案(可透過visudo 存取)授予Web 伺服器使用者(例如www-data)無需密碼即可執行腳本的權限。以下是可以加入 sudoers 檔案中的範例規則:
www-data ALL=NOPASSWD: /path/to/script
此規則允許使用者 www-data 執行腳本 /path/to/script 而無需提供密碼。更新 sudoers 檔案後,您可以像往常一樣使用 shell_exec 從 PHP 呼叫腳本。
<?php $output = shell_exec('/path/to/script'); ?>
警告: 在 sudoers 檔案中授予過多權限可能會損害系統安全。確保僅添加必要的規則並最小化授予權限的範圍。
以上是如何在沒有密碼提示的情況下從 PHP 執行需要 SUDO 的 Shell 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!