In breve : come fare in modo che sudo non svuoti il PERCORSO ogni volta?
Ho alcuni siti Web distribuiti sul mio server (test Debian) scritti con Ruby on Rails. Uso Mongrel + Nginx per ospitarli, ma c'è un problema che si presenta quando devo riavviare Mongrel (ad esempio dopo aver apportato alcune modifiche).
Tutti i siti sono controllati in VCS (git, ma non è importante) e il proprietario e il gruppo sono impostati sul mio utente, mentre Mongrel funziona sotto l'utente, eh, mongrel che è severamente limitato nei suoi diritti. Quindi Mongrel deve essere avviato sotto root (può cambiare automaticamente l'UID) o mongrel.
Per gestire mongrel uso mongrel_cluster gem perché consente di avviare o arrestare qualsiasi quantità di server Mongrel con un solo comando. Ma ha bisogno che la directory /var/lib/gems/1.8/bin sia in PERCORSO: questo non è sufficiente per avviarlo con il percorso assoluto .
La modifica del PERCORSO nella radice .bashrc non ha cambiato nulla, nemmeno l'ottimizzazione di suv env_reset e env_keep.
Quindi la domanda: come aggiungere una directory a PATH o mantenere il PERCORSO dell'utente in sudo?
Aggiornamento: alcuni esempi
$ env | grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/var/lib/gems/1.8/bin
$ sudo cat /etc/sudoers | egrep -v '^$|^#'
Defaults env_keep = "PATH"
root ALL=(ALL) ALL
%sudo ALL=NOPASSWD: ALL
$ sudo env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
Inoltre posso dire che funziona esattamente così anche su Debian stable (lenny).