ホームページ >バックエンド開発 >PHPチュートリアル >PHP アプリケーションから root コマンドを安全に実行するにはどうすればよいですか?

PHP アプリケーションから root コマンドを安全に実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-17 16:03:02384ブラウズ

How to Execute Root Commands Securely from PHP Applications?

PHP 経由で root コマンドをシームレスに実行する

root コマンドを安全に実行することは、Web ベースのアプリケーションでは一般的な要件です。この記事では、機能要件を満たしながらセキュリティを強化し、制限されたユーザー アクセスで root コマンドを実行できるソリューションについて詳しく説明します。

当初、このアプローチは Apache ユーザーに root 権限を付与することでした。ただし、これは重大なセキュリティ リスクを引き起こすため、使用しないことを強くお勧めします。代わりに、より安全な代替手段を採用します。

私たちのソリューションは、root として目的のコマンドを実行するバイナリ ラッパーの作成を中心に展開します。これを設定するためのステップバイステップのガイドは次のとおりです:

  1. ルート コマンドを使用してスクリプトを作成します:

    実行する必要がある root コマンド。たとえば、SSHD サービスを再起動するには、次の内容を含む php_shell.sh という名前のスクリプトを作成します:

    #!/bin/sh
    /sbin/service sshd restart
  2. Secure Script Permissions:

    php_shell.sh の所有者を root に設定し、書き込み権限を root にのみ付与しますuser:

    chown root php_shell.sh
    chmod u=rwx,go=xr php_shell.sh
  3. バイナリ ラッパーの作成:

    このバイナリは、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;
    }
  4. コンパイルして権限を設定します。

    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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。