• ベストアンサー

sudo での実行の profile

sudo <command> sudo su -c<command> を使用したとき、/etc/profile .profile などに書いてある環境設定がされておらず、コマンドが実行できずに困っています。 sudo するときに、対象ユーザ(sudo する先のユーザ)の環境設定用のスクリプトをあらかじめ実行するためには、どうすればよいものでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

sudo su - -c<command> ですね。su - で、通常ログオン時と同じ設定ファイルを読みます。

asbyat
質問者

お礼

いつもお世話になります。 そうでした、- を忘れていました。 sudo su - -c"ant -f ${BASEDIR}/build.xml deploy"; なんとかできそうな気がしてきました。

その他の回答 (1)

回答No.1

sudoersの設定ファイルでenv_resetを設定するとか?

asbyat
質問者

お礼

ありがとうございます。 頂いた情報をもとに、さっそく試してみました。(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' のようです。 なお、私は、あきらめてほかの方法を探すことにしました。

関連するQ&A

専門家に質問してみよう