ホームページ  >  記事  >  バックエンド開発  >  ユーザーの安全を損なうことなく、CentOS 5.7 で PHP から root コマンドを安全に実行するにはどうすればよいですか?

ユーザーの安全を損なうことなく、CentOS 5.7 で PHP から root コマンドを安全に実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-16 08:49:02130ブラウズ

How Can I Securely Execute Root Commands from PHP in CentOS 5.7 without Compromising User Safety?

PHP 経由の root コマンドの実行

PHP 5.3.x を搭載した CentOS 5.7 では、root コマンドを実行すると、ユーザーの安全性を損なうことなくセキュリティ上の課題が発生する可能性があります。 Apache を root として実行する、または sudoers を変更して Apache NOPASSWD が制限されたコマンドにアクセスできるようにするなどの方法があっても、これらの解決策は推奨されません。

バイナリ ラッパーを使用した解決策:

検討してください。安全なソリューションを作成するには、次の手順を実行します。

  1. root に必要なコマンドを含むシェル スクリプト (php_shell.sh など) を作成します。このスクリプトが root によって所有され、root のみに制限された書き込み権限があることを確認してください。
  2. 提供された C コードを使用してバイナリ ラッパー (wrapper.c など) を作成します。これには、権限を昇格するための setuid システム コールが含まれており、指定されたシェルスクリプトを実行します。コンパイルして、suid ビットを含む正しい権限を設定します。
  3. コンパイルされたバイナリ (php_root) は root 権限で実行され、シェル スクリプトでコマンドを実行するようになり、PHP から root アクションをトリガーする安全な方法が提供されます。

代替アプローチ:

別のスクリプトを使用したくない場合は、wrapper.c を変更して、必要なコマンドを直接組み込むことができます。システム(「ここにシェルコマンド」)呼び出しを使用して実行したいと考えています。適切な権限をコンパイルして設定することにより、このラッパー バイナリは、指定されたコマンドに対して特に root 権限を付与します。

以上がユーザーの安全を損なうことなく、CentOS 5.7 で PHP から root コマンドを安全に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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