インフラエンジニアbacchiのわかったことまとめ

bacchi.me

bash Linux Mac

sudo でスイッチ後のユーザーの環境変数を使う方法

更新日:

sudo でコマンドを実行すると、スイッチしたユーザーの環境変数が使われるものと思っていました。

RVMでRubyを入れて使っているのですが、sudo をかませて ruby を実行すると
RVMで入れたrubyではなく、プリインストールのrubyが使われてハマることがありました。

sudo でスイッチ後のユーザーの環境変数を引き継ぐ方法をまとめました。

sudoを使う前と使った後の環境変数をみてみる

まずはsudoを使わずに環境変数やらを見てみます。

次にsudoをして環境変数やらを見てみましょう。

sudoをした後もユーザーの環境変数を引き継いだままです。

/etc/profile や .bashrc が読み込まれておらず、sudo 実行ユーザーの環境変数が使われています。

sudoで環境変数を引き継がせる

sudoを実行する場合、 そのユーザーの .bashrc や /etc/profile に定義してある設定を使用したいケースが多いのではないでしょうか。

そんな時は -i オプションをつけて sudo を実行してやればよいです。

/etc/profile や .bashrc が読み込まれています。

ruby もRVMで入れたものが使われていますね!

おまけ sudo で引き継がれる環境変数、引き継がれない環境変数

どの環境変数が引き継がれて、どの環境変数が引き継がれないのかは -V オプションで確認できます。

Sponsor Link

スポンサーリンク

Sponsor Link

スポンサーリンク

-bash, Linux, Mac

Copyright© bacchi.me , 2018 AllRights Reserved.