(あまり苦労しないで)走れる方法はありますか?sudo -u
user command
このようにuser
環境は完全に保存されていますか?
PATH
基本的に私に必要なのは、特定のID(主にデータベース固有のJAVA_HOME
(OracleおよびPostgres)変数)をエミュレートするためにsudoを実行できるすべてのユーザーに特定の環境変数が設定されていることを確認することです。
つまり、 user でwobble
実行するとパスの代わりにパスが表示されるのをsudo -u wibble echo $PATH
見たいと思います。wibble
wobble
ベストアンサー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 ...