sudo ruby loosing environment?

T

Trans

My Ruby installation is from the Ubuntu package repository. Yesterday,
I upgraded my system to Heron and since then one of my Ruby scripts
stopped working. I traced the problem to this:

$ ruby -e"p ENV['ROLL_PATH']"
"/home/trans/Company/TigerOps/programs"

$ sudo ruby -e"p ENV['ROLL_PATH']"
nil

At first I though it might have something to do with sudo itself, but:

$ echo $ROLL_PATH
/home/trans/Company/TigerOps/programs

$ sudo echo $ROLL_PATH
/home/trans/Company/TigerOps/programs

So that's not it. Anyone have any idea what's going on?

My current version of Ruby is now:

$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [x86_64-linux]

Thanks,
T.
 
G

Gregory Seidman

My Ruby installation is from the Ubuntu package repository. Yesterday,
I upgraded my system to Heron and since then one of my Ruby scripts
stopped working. I traced the problem to this:

$ ruby -e"p ENV['ROLL_PATH']"
"/home/trans/Company/TigerOps/programs"

$ sudo ruby -e"p ENV['ROLL_PATH']"
nil

At first I though it might have something to do with sudo itself, but:

Yes, it's sudo. Your test is flawed.
$ echo $ROLL_PATH
/home/trans/Company/TigerOps/programs

$ sudo echo $ROLL_PATH
/home/trans/Company/TigerOps/programs

$ROLL_PATH is interpreted by the shell before sudo is ever invoked.
So that's not it. Anyone have any idea what's going on?
[...]

This is unrelated to Ruby or Ubuntu. This is how sudo works. Read the
sudoers man page, looking for env_keep. You will need to edit the
/etc/sudoers file (with visudo, not directly).
Thanks,
T.
--Greg
 
T

Trans

My Ruby installation is from the Ubuntu package repository. Yesterday,
I upgraded my system to Heron and since then one of my Ruby scripts
stopped working. I traced the problem to this:
=A0 $ ruby -e"p ENV['ROLL_PATH']"
=A0 "/home/trans/Company/TigerOps/programs"
=A0 $ sudo ruby -e"p ENV['ROLL_PATH']"
=A0 nil
At first I though it might have something to do with sudo itself, but:

Yes, it's sudo. Your test is flawed.
=A0 $ echo $ROLL_PATH
=A0 /home/trans/Company/TigerOps/programs
=A0 $ sudo echo $ROLL_PATH
=A0 /home/trans/Company/TigerOps/programs

$ROLL_PATH is interpreted by the shell before sudo is ever invoked.
So that's not it. Anyone have any idea what's going on?

[...]

This is unrelated to Ruby or Ubuntu. This is how sudo works. Read the
sudoers man page, looking for env_keep. You will need to edit the
/etc/sudoers file (with visudo, not directly).

Ok. That makes sense. Though I don't yet understand what changed --it
was working fine before the dist-upgrade.

Thanks,
T.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,739
Latest member
Clint8040

Latest Threads

Top