Sudo - ターゲットユーザーエクスペリエンス

Sudo - ターゲットユーザーエクスペリエンス

(あまり苦労しないで)走れる方法はありますか?sudo -uuser commandこのようにuser環境は完全に保存されていますか?

PATH基本的に私に必要なのは、特定のID(主にデータベース固有のJAVA_HOME(OracleおよびPostgres)変数)をエミュレートするためにsudoを実行できるすべてのユーザーに特定の環境変数が設定されていることを確認することです。

つまり、 user でwobble実行するとパスの代わりにパスが表示されるのをsudo -u wibble echo $PATH見たいと思います。wibblewobble

ベストアンサー1

もちろん、すべてのユーザーまたは特定のユーザーに対して次のことができますが、すべてのコマンドに対して機能しますsudo -u anyuser/etc/sudoersファイルを編集し、次の行を追加します。

Defaults env_keep+="PATH JAVA_HOME"

すべてのユーザーに対して、または

Defaults:wobble env_keep+="PATH JAVA_HOME"

ただスイングして維持したいすべての変数を使用してください。実際、PATH通常は特殊なケースで初期化されるため、次のような項目でキャンセルする必要があります。

Defaults:wobble  !secure_path, env_keep+="PATH JAVA_HOME"

明らかに、これらの機能は妥当な理由があるので注意が必要です。

sudo -E次のsudoersエントリを使用して環境を保護することもできます。

wobble ALL = (wibble) SETENV: ALL

ただし、次のコマンドを実行できますが、特殊な場合はまだPATHがリセットされます。

sudo -E PATH=$PATH -u wibble ...

おすすめ記事