永続的な環境変数を作成するには、次のようにスクリプトファイルを/etc/profile.dディレクトリに追加します。
#my script export MY_VAR = var_value
これは現在のユーザーに対して適切に機能します:
alex @ alex-64:〜$ echo $ MY_VAR var_value
これで、rootユーザーに対して同じ環境変数が必要になりましたが、/ etc/profile.dスクリプトはrootに対して機能しません。
alex @ alex-64:〜$ echo $ MY_VAR var_value alex @ alex-64:〜$ Sudo su root @ alex-64:/ home/alex#echo $ MY_VAR root @ alex-64:/ home/alex#
ルートに同じ変数を設定するにはどうすればよいですか?
Sudoは通常、ローカル環境変数を保持しません。これを行うには、-E
スイッチとともに使用する必要があります。つまり、Sudo -E su
は、ルートに対して$ MYVARを保持します。
あるいは、真にシステム全体にわたる永続変数を作成するには、/etc/environment
で設定する必要があります。
たとえば、「〜/ .bashrc」を編集して独自の環境変数を定義するプロセスと同様に、「/ root/.bashrc」を編集してルートの環境変数を定義できます。
Defaults env_reset
の/etc/sudoers
は、/etc/environment
で定義されたルートのPATH
をリセットします。
Defaults !env_reset
に変更して、リセットを無効にしたり、追加したりできます。
Defaults secure_path="my/custom/path:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin