- ベストアンサー
sudo での実行の profile
sudo <command> sudo su -c<command> を使用したとき、/etc/profile .profile などに書いてある環境設定がされておらず、コマンドが実行できずに困っています。 sudo するときに、対象ユーザ(sudo する先のユーザ)の環境設定用のスクリプトをあらかじめ実行するためには、どうすればよいものでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
sudo su - -c<command> ですね。su - で、通常ログオン時と同じ設定ファイルを読みます。
その他の回答 (1)
- hanabutako
- ベストアンサー率54% (492/895)
回答No.1
sudoersの設定ファイルでenv_resetを設定するとか?
質問者
お礼
ありがとうございます。 頂いた情報をもとに、さっそく試してみました。(Ubuntu です。) $ sudo visudo Defaults env_keep = "PATH JAVA_HOME CLASSPATH CATALINA_HOME ANT_HOME" これで解決するかと思ったのですが、残念なことに、私の環境では解決しません。どうもバグのようです。下の場所に情報がありました。 https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/192651 結局のところ、回避策としては、 sudo PATH=$PATH sh -c 'echo $PATH' のようです。 なお、私は、あきらめてほかの方法を探すことにしました。
お礼
いつもお世話になります。 そうでした、- を忘れていました。 sudo su - -c"ant -f ${BASEDIR}/build.xml deploy"; なんとかできそうな気がしてきました。