ホームページ  >  記事  >  バックエンド開発  >  PHP から特定のユーザーとしてコマンドライン アプリケーションを実行するにはどうすればよいですか?

PHP から特定のユーザーとしてコマンドライン アプリケーションを実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-31 11:25:02621ブラウズ

How Can I Execute Command-Line Applications as a Specific User from PHP?

特定のユーザーを使用して PHP からコマンドライン アプリケーションを実行する

www-user として実行されている PHP スクリプトから Rhythmbox の再生を制御するには、次のようにします。アプリケーションがデフォルトの www ユーザーではなく、意図されたユーザーとして実行されることが重要です。効果的な解決策の 1 つは、sudo を利用することです。

sudo を利用することで、PHP スクリプトは昇格された権限で rhythmbox-client コマンドを呼び出すことができます。ただし、特定のコマンドのみが許可されるようにするには、それに応じて sudoers ファイルを構成することをお勧めします。例:

wwwuser ALL=/usr/bin/rhythmbox-client

sudo の呼び出しを特定のコマンドに制限することで、環境を保護し、Apache が任意のコマンドを実行するのを防ぐことができます。

rhythmbox-client が困難な場合は、制御する正しいインスタンスを特定し、適切な環境を確立してコマンドを実行するための bash スクリプトの作成を検討してください。以下のスクリプトは、このアプローチの例です。

#! /bin/bash
DBUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/*/environ 2> /dev/null| sed 's/DBUS/\nDBUS/g' | tail -n 1`
if [ "x$DBUS_ADDRESS" != "x" ]; then
        export $DBUS_ADDRESS
        /usr/bin/rhythmbox-client --pause
fi

このスクリプトを PHP の実行に統合することで、wwwuser に対象を絞った方法で再生を制御する機能を付与し、電話に出たときに音楽を一時停止するという目的の機能を有効にすることができます。電話を切ったときに再開します。

以上がPHP から特定のユーザーとしてコマンドライン アプリケーションを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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