透過 PHP 無縫執行 root 命令
安全地執行 root 命令是基於 Web 的應用程式中的常見要求。在本文中,我們將深入研究一種解決方案,該解決方案可讓您以受限的使用者存取權限執行 root 命令,在滿足功能要求的同時增強安全性。
最初,方法是授予 Apache 使用者 root 權限。然而,這會帶來嚴重的安全風險,強烈建議不要這樣做。相反,我們將採用更安全的替代方案。
我們的解決方案圍繞著建立一個二進位包裝器,該包裝器將以 root 身分執行我們所需的命令。以下是設定此功能的逐步指南:
使用根命令建立腳本:
製作一個包含以下內容的腳本您需要執行的root 命令。例如,要重新啟動SSHD 服務,請建立名為php_shell.sh 的腳本,其中包含以下內容:
#!/bin/sh /sbin/service sshd restart
安全腳本權限:
設定php_shell.sh的擁有者為root,並且只給root授予寫入權限使用者:
chown root php_shell.sh chmod u=rwx,go=xr php_shell.sh
建立一個二進位包裝器:
建立一個二進位包裝器:
#include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main (int argc, char *argv[]) { setuid (0); system ("/bin/sh /path/to/php_shell.sh"); return 0; }
此二進位檔案將以root權限執行我們的php_shell.sh。使用以下程式碼建立一個wrapper.c檔案:
gcc wrapper.c -o php_root chown root php_root chmod u=rwx,go=xr,+s php_root
以上是如何從 PHP 應用程式安全地執行 root 命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!