Kısacası : sudo PATH'i her zaman yıkamamak için nasıl yapılır?
Sunucumda dağıtılan bazı web sitelerim var (Debian testi) Ruby on Rails ile yazılmış. Onları barındırmak için Mongrel + Nginx kullanıyorum, ancak Mongrel'i yeniden başlatmam gerektiğinde (örneğin bazı değişiklikler yaptıktan sonra) gelen bir sorun var.
Tüm siteler VCS'de kontrol edilir (git, ancak önemli değildir) ve sahibim ve grubum kullanıcıma ayarlanmışken, Mongrel, haklarında ciddi şekilde kısıtlanmış olan, melez, melez kullanıcı altında çalışır. Bu yüzden Moğol kök (UID'yi otomatik olarak değiştirebilir) veya melez altında başlatılmalıdır.
Mongrel'i yönetmek için mongrel_cluster gem kullanıyorum çünkü herhangi bir miktarda Mongrel sunucusunu tek bir komutla başlatmaya veya durdurmaya izin veriyor. Ancak PATH içinde olması için /var/lib/gems/1.8/bin dizinine ihtiyacı vardır: bu, mutlak yolla başlatmak için yeterli değildir .
Kök .bashrc'de PATH'yi değiştirmek hiçbir şey değiştirmedi, sudo'nun env_reset ve env_keep'i değiştirmedi.
Yani soru: PATH'e bir dizin nasıl eklenir veya kullanıcının PATH'ı sudo'da nasıl tutulur?
Güncelleme: bazı örnekler
$ 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
Ayrıca Debian kararlı (lenny) de tam olarak bu şekilde çalıştığını söyleyebilirim.