ホームページ  >  記事  >  バックエンド開発  >  パスワードプロンプトを表示せずに、PHP から SUDO を必要とするシェルスクリプトを実行するにはどうすればよいですか?

パスワードプロンプトを表示せずに、PHP から SUDO を必要とするシェルスクリプトを実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-24 04:48:13620ブラウズ

How Can I Run SUDO-Requiring Shell Scripts from PHP Without a Password Prompt?

PHP から SUDO を必要とするシェル スクリプトの呼び出し

SUDO を必要とするものなど、高い権限を要求するシェル スクリプトの実行は、次の場合に困難になることがあります。 PHP のshell_exec 関数を通じてそれらを呼び出します。デフォルトでは、shell_exec にはパスワード プロンプトをバイパスするために必要な権限がありません。

解決策: sudoers ファイルを変更する

この問題を解決するには、sudoers ファイルを変更します。ファイル (visudo 経由でアクセス可能) を使用して、Web サーバー ユーザー (www-data など) にパスワードなしでスクリプトを実行する権限を付与します。 sudoers ファイルに追加できるルールの例を次に示します。

www-data ALL=NOPASSWD: /path/to/script

このルールにより、ユーザー www-data はパスワードを指定せずにスクリプト /path/to/script を実行できます。 sudoers ファイルが更新されたら、通常どおり、shell_exec を使用して PHP からスクリプトを呼び出すことができます。

<?php
$output = shell_exec('/path/to/script');
?>

注意: sudoers ファイルに過剰な権限を付与すると、システムのセキュリティが危険にさらされる可能性があります。必要なルールのみを追加し、付与される権限の範囲を最小限に抑えてください。

以上がパスワードプロンプトを表示せずに、PHP から SUDO を必要とするシェルスクリプトを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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