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
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
można ustawić zmienną w pliku/etc/środowiska, a następnie użyć "sudo -i", aby uruchomić skrypt (działa w Ubuntu 10.10).
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.
Dzięki, meder, to załatwiło sprawę. –
Bez problemu. Nie zapomnij wybrać odpowiedzi, aby inni mogli się dowiedzieć, że została rozwiązana :) –
+1 za rozwiązanie problemu PO. –