sudoを介してPATHを渡す
要するに、毎回PATHをフラッシュしないようにsudoを作る方法は? Ruby on Railsで書かれたいくつかのWebサイトをサーバーに展開しています(Debianテスト)。Mongrel + Nginxを使用してそれらをホストしますが、Mongrelを再起動する必要がある場合(たとえば、変更を加えた後)に1つの問題があります。 すべてのサイトはVCSでチェックされ(git、ただし重要ではありません)、所有者とグループがユーザーに設定されていますが、Mongrelはその権限が厳しく制限されているmongrelユーザーの下で実行されます。そのため、Mongrelはルート(UIDを自動的に変更できます)またはmongrelの下で起動する必要があります。 mongrelを管理するには、mongrel_cluster gemを使用します。これにより、1つのコマンドで任意の数のMongrelサーバーを起動または停止できます。ただし、ディレクトリ/var/lib/gems/1.8/binがPATHにある必要があります。これは絶対パスで起動するには不十分です。 ルート.bashrcのPATHを変更しても何も変わりませんでした。sudoのenv_resetとenv_keepの調整も変更しませんでした。 質問:PATHにディレクトリを追加する方法、またはsudoでユーザーのPATHを保持する方法は? 更新:いくつかの例 $ 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)でもまったく同じように機能すると言えます。