web-dev-qa-db-ja.com

ルートの永続的な環境変数を設定するにはどうすればよいですか?

永続的な環境変数を作成するには、次のようにスクリプトファイルを/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#

ルートに同じ変数を設定するにはどうすればよいですか?

40
Alex F

Sudoは通常、ローカル環境変数を保持しません。これを行うには、-Eスイッチとともに使用する必要があります。つまり、Sudo -E suは、ルートに対して$ MYVARを保持します。

あるいは、真にシステム全体にわたる永続変数を作成するには、/etc/environmentで設定する必要があります。

42
ish

たとえば、「〜/ .bashrc」を編集して独自の環境変数を定義するプロセスと同様に、「/ root/.bashrc」を編集してルートの環境変数を定義できます。

9
ppppplv

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
7
diyism