2009-10-04 12 views
6

Voglio aggiungere qualche directory al $ PATH quando si esegue sudo, questo è un requisito (semi) permanente, non qualcosa che deve essere aggiunto agli script stessi . Ho notato che Django è riuscito a farlo (il mio $ PATH quando si esegue sudo è "/ usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/django/django-trunk/django/bin ") - quindi come è andata?

risposta

6

credo che questo dovrebbe capire se lo si salva in /root/.bashrc:

export PATH=/www/foo:$PATH 

dimentico se è PATH o PYTHONPATH e se effettivamente importa, questo si basa su .bashrc del mio utente:

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

Grazie, meder, questo ha fatto il trucco. –

+0

Nessun problema. Non dimenticare di selezionare una risposta in modo che altri possano sapere che è stata risolta :) –

+0

+1 per risolvere il problema dell'OP. –

3

È possibile impostare la variabile in/etc/ambiente, e quindi utilizzare "sudo" per eseguire lo script (opere in Ubuntu 10.10).

17

Questa è la riga nel file sudoers che azzera:

Defaults env_reset

È possibile aggirare questo aggiungendo PATH-env_keeps o con l'aggiunta di questa linea:

Defaults env_keep = "PATH"

EDIT : meder, non si disabilita env_reset, basta semplicemente bypassare il path reset

Oppure è possibile rimuovere la riga env_reset errata.

Ancora meglio però, si può dichiarare una secure_path che sostituirà PATH quando sudo viene eseguito:

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

In questo modo è possibile controllare quali directory specifici da includere nel percorso.

+1

Questa dovrebbe essere la risposta accettata. È possibile limitare l'accesso solo ai percorsi necessari con il meccanismo sudoer anziché aprire tutto l'accesso di root. – Alkaline

+0

Accedi al file sudoers tramite 'sudo visudo' – fiat

Problemi correlati