CentOS 7 Apache 以 root 使用者身分執行/執行 Web 請求

CentOS 7 Apache 以 root 使用者身分執行/執行 Web 請求

我有一個 PHP 實用程序,它接受以文件作為參數的 post 請求。現在,當收到該請求時,我想以 root 使用者身分執行它。例如,當使用者從郵差或任何其他工具點擊 www.mydomain.com/sendtextfiletoftp.php 時,應以 root 使用者身分執行。

我已經厭倦了sudo visudo向 sudoers 檔案添加以下行,但仍然使用 apache 用戶執行請求

www-data ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

apache ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

當從命令列(sudo php72 /path/to/file/sendtextfiletoftp.php)以 sudo 使用者身份執行相同的檔案時,效果很好。

感謝您的協助。

答案1

除了允許 apache 使用者成為命令的 root 之外,您還需要在程式碼中進行包含「sudo」的呼叫。通常:

在 visudo 中我會放一些類似的東西

apache ALL=NOPASSWD: /path/my_root_command

在我的 /var/www/html/sendtextfiletoftp.php 程式碼中,對於需要 root 存取權的特定部分,我會新增以下內容:

exec("sudo /path/my_root_command");

相關內容