PHP 経由で root コマンドをシームレスに実行する
root コマンドを安全に実行することは、Web ベースのアプリケーションでは一般的な要件です。この記事では、機能要件を満たしながらセキュリティを強化し、制限されたユーザー アクセスで root コマンドを実行できるソリューションについて詳しく説明します。
当初、このアプローチは Apache ユーザーに root 権限を付与することでした。ただし、これは重大なセキュリティ リスクを引き起こすため、使用しないことを強くお勧めします。代わりに、より安全な代替手段を採用します。
私たちのソリューションは、root として目的のコマンドを実行するバイナリ ラッパーの作成を中心に展開します。これを設定するためのステップバイステップのガイドは次のとおりです:
ルート コマンドを使用してスクリプトを作成します:
実行する必要がある root コマンド。たとえば、SSHD サービスを再起動するには、次の内容を含む php_shell.sh という名前のスクリプトを作成します:
#!/bin/sh /sbin/service sshd restart
Secure Script Permissions:
php_shell.sh の所有者を root に設定し、書き込み権限を root にのみ付与しますuser:
chown root php_shell.sh chmod u=rwx,go=xr php_shell.sh
バイナリ ラッパーの作成:
このバイナリは、root 権限で php_shell.sh を実行します。次のコードを使用して、wrapper.c ファイルを作成します。
#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; }
コンパイルして権限を設定します。
wrapper.c ファイルをコンパイルし、 suid を含む正しい権限を設定します。 bit:
gcc wrapper.c -o php_root chown root php_root chmod u=rwx,go=xr,+s php_root
これらの手順に従うと、php_shell.sh で指定されている root コマンドを実行できるバイナリ ラッパー (php_root) が作成されます。これにより、システムのセキュリティを損なうことなく、PHP アプリケーションから root コマンドを実行する安全な方法が提供されます。
以上がPHP アプリケーションから root コマンドを安全に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。