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


40

永続的な環境変数を作成するには、スクリプトファイルを/etc/profile.dディレクトリに追加します。次に例を示します。

#私のスクリプト
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# 

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


2
実行時に呼び出し側の環境から特定の変数を保存する方法に関するこの質問sudoは、非常に関連しています。(ただし、この質問はルート自身の環境をカスタマイズする方法に関するものであるため、重複していません。)
エリアカガン

回答:


44

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

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


14
動作せず、/ etc / environemnt変数がsudoに設定されていません
フレデリック

3
@FredericYesidPeñaSánchezはCentOS上で私のためにした。そこにはスクリプトをFOO=bar
記述

10

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


8

Defaults env_resetin はで定義された/etc/sudoersルートをリセットPATH/etc/environmentます。

Defaults !env_resetリセットを無効にしたり、追加するように変更できます。

Defaults secure_path="my/custom/path:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin

2番目のソリューション(secure_pathにパスを追加することを意味します)を使用する場合、キーは何ですか?!パスは単なる値です。ルートの環境変数にANDROID_NDKを追加したい。とりあえず、最初のものだけを使用します(!env_reset)。ありがとう。
Dr.jacky
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.