特定のユーザーとして PHP からコマンドを実行する
ローカルホストで PHP スクリプトを実行すると、スクリプト内でコマンドが実行されるときに問題が発生する可能性があります別のユーザーが所有する特定のリソースまたはインスタンスにはアクセスできません。たとえば、www-user として実行されている PHP スクリプトから Rhythmbox の再生を制御しようとすると、無駄であることが判明する可能性があります。
これに対処する効果的な解決策の 1 つは、sudo コマンドを利用することです。実行したいコマンドの前に sudo を付けると、元のユーザーの権限を保持したまま、一時的に別のユーザーとして実行できます。例:
<code class="php">exec('sudo -u myuser ls /');</code>
このコマンドは sudo を呼び出し、ユーザー 'myuser' として 'ls /' コマンドを実行します。ただし、このアプローチを実行するには、visudo を使用して sudoers ファイルを変更する必要があります。次のエントリ:
wwwuser ALL=/usr/bin/rhythmbox-client
を sudoers ファイルに追加すると、Apache の sudo 権限が「rhythmbox-client」コマンドのみに制限され、任意のコマンドが実行されなくなります。この戦略により、セキュリティを維持しながら、PHP スクリプトが目的のユーザーとして Rhythmbox と対話できるようになります。
以上がPHP から特定のユーザーとしてコマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。