2009-10-04 5 views
6

sudoを実行するときに$ PATHにいくつかのディレクトリを追加したいのですが、これは半永久的な要件であり、スクリプト自体に追加する必要はありません。私は、Djangoがそれをやっていることに気付きました(私の$ PATHは "/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ usr/X11R6/bin:/ django/django-trunk/django/bin ") - それはどうしたのですか?

答えて

6

私はあなたが/root/.bashrcに保存した場合、これがうまくいかなければならないと思う:

export PATH=/www/foo:$PATH 

それがPATHまたはPYTHONPATHだ場合、それは実際に重要ならば、これは私のユーザーの.bashrcに基づいている私は忘れ:

export PYTHONPATH=/www/django:$PYTHONPATH 
+0

ありがとう、仲間、これはトリックでした。 –

+0

問題ありません。答えを選択して、他の人が解決したことを知ることができるように忘れないでください。 –

+0

+1 OPの問題を解決してください。 –

3

あなたは、/ etc /環境変数を設定し、スクリプト(のUbuntu 10.10で作品を)実行するために、 "sudoの-i" を使用することができます。

17

これはリセットsudoersファイル内の行です:

Defaults env_reset

をあなたがenv_keepsPATHを追加するか、この行を追加することでこの問題を回避することができます

Defaults env_keep = "PATH"

EDIT :メディエーター、env_resetを無効にしないで、パスをリセットするだけです。

または、問題のあるenv_reset行を削除できます。さらに良い

しかし、あなたはsudoのが実行されたときにPATHを置き換えますsecure_pathを宣言することができます。

Defaults secure_path="/bin:/usr/bin"

あなたが特定のディレクトリパスに含めるかを制御することができ、そのように。

+1

これは受け入れられる回答である必要があります。 rootのすべてのアクセスを開くのではなく、sudoerメカニズムで必要なパスのみにアクセスを制限することができます。 – Alkaline

+0

'sudo visudo'でsudoersファイルにアクセスする – fiat

関連する問題