Короче говоря : как заставить sudo не сбрасывать PATH каждый раз?
У меня есть несколько сайтов, развернутых на моем сервере (тестирование Debian), написанных на Ruby on Rails. Я использую Mongrel + Nginx для их размещения, но есть одна проблема, которая возникает, когда мне нужно перезапустить Mongrel (например, после внесения некоторых изменений).
Все сайты проверяются в VCS (git, но это не важно) и имеют владельца и группу, настроенные для моего пользователя, в то время как Mongrel работает от имени пользователя mongrel, который строго ограничен в своих правах. Таким образом, Mongrel должен быть запущен под root (он может автоматически менять UID) или mongrel.
Для управления mongrel я использую gem mongrel_cluster, потому что он позволяет запускать или останавливать любое количество серверов Mongrel всего одной командой. Но для этого нужно, чтобы каталог /var/lib/gems/1.8/bin находился в PATH: этого недостаточно для запуска с абсолютным путем .
Модификация PATH в корне .bashrc ничего не изменила, не изменив настройки sudo env_reset и env_keep.
Итак, вопрос: как добавить каталог в PATH или сохранить PATH пользователя в sudo?
Обновление: несколько примеров
$ 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
Также могу сказать, что так же работает и в стабильной Debian (lenny).