Singkatnya : bagaimana membuat sudo agar tidak menyiram PATH setiap kali?
Saya memiliki beberapa situs web yang digunakan di server saya (pengujian Debian) yang ditulis dengan Ruby on Rails. Saya menggunakan Mongrel + Nginx untuk meng-host mereka, tetapi ada satu masalah yang muncul ketika saya harus me-restart Mongrel (misalnya setelah membuat beberapa perubahan).
Semua situs diperiksa dalam VCS (git, tetapi tidak penting) dan memiliki pemilik dan grup diatur untuk pengguna saya, sedangkan Mongrel berjalan di bawah, ya, pengguna mongrel yang sangat dibatasi hak-haknya. Jadi Mongrel harus dimulai di bawah root (secara otomatis dapat mengubah UID) atau mongrel.
Untuk mengelola mongrel saya menggunakan permata mongrel_cluster karena memungkinkan memulai atau menghentikan sejumlah server Mongrel dengan hanya satu perintah. Tetapi perlu direktori /var/lib/gems/1.8/bin berada di PATH: ini tidak cukup untuk memulainya dengan path absolut .
Memodifikasi PATH di root .bashrc tidak mengubah apa pun, men-tweak sudo env_reset dan env_keep juga tidak.
Jadi pertanyaannya: bagaimana cara menambahkan direktori ke PATH atau mempertahankan PATH pengguna di sudo?
Perbarui: beberapa contoh
$ 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
Saya juga dapat mengatakan bahwa cara kerjanya persis seperti ini di stabil Debian (lenny) juga.