2009-10-04 14 views
6

Chcę dodać jakiś katalog do $ PATH podczas uruchamiania sudo, to jest (pół) stałe wymaganie, a nie coś, co trzeba dodać do samych skryptów . Zauważyłem, że Django udało się to zrobić (moja $ PATH podczas uruchamiania sudo to "/ usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/django/django-trunk/django/bin ") - jak to się stało?

Odpowiedz

6

myślę, że to powinno działać, czy zapisać go w wypadku plik /root/.bashrc:

export PATH=/www/foo:$PATH 

zapomnę jeśli to PATH lub PYTHONPATH a jeśli rzeczywiście ma znaczenie, to na podstawie mojego .bashrc użytkownika:

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

Dzięki, meder, to załatwiło sprawę. –

+0

Bez problemu. Nie zapomnij wybrać odpowiedzi, aby inni mogli się dowiedzieć, że została rozwiązana :) –

+0

+1 za rozwiązanie problemu PO. –

3

można ustawić zmienną w pliku/etc/środowiska, a następnie użyć "sudo -i", aby uruchomić skrypt (działa w Ubuntu 10.10).

17

Jest to linia w pliku sudoers że resetuje:

Defaults env_reset

Można obejść ten problem dodając PATH do env_keeps lub przez dodanie tej linii:

Defaults env_keep = "PATH"

EDIT : meder, nie wyłączaj env_reset, po prostu omijasz reset ścieżki

Możesz też usunąć niewłaściwą linię env_reset.

Nawet lepiej chociaż można zadeklarować secure_path że zastąpi PATH gdy sudo jest prowadzony:

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

ten sposób można kontrolować, jakie konkretne katalogi umieścić w ścieżce.

+1

To powinna być zaakceptowana odpowiedź. Możesz ograniczyć dostęp tylko do ścieżek wymaganych przez mechanizm sudoera, zamiast otwierać cały dostęp root'a. – Alkaline

+0

Dostęp do pliku sudoers przez "sudo visudo" – fiat

Powiązane problemy