No /sbin PATH after sudo in Fedora 12 even after the PATH is added in .bash_profile
Sam Sharpe
lists.redhat at samsharpe.net
Fri Feb 5 01:24:54 UTC 2010
On 5 February 2010 01:14, Ed Greshko <Ed.Greshko at greshko.com> wrote:
> suvayu ali wrote:
>> On 4 February 2010 16:13, Tom Horsley <tom.horsley at att.net> wrote:
>>
>>> On Thu, 4 Feb 2010 16:00:39 -0800
>>> suvayu ali wrote:
>>>
>>>
>>>> As far as I understand this, sudo still uses your (the regular user's)
>>>> $PATH.
>>>>
>>> Nope, that's merely what the docs claim. In fact, the security geeks
>>> decided sudo absolutely needed to have a hard coded PATH and as far
>>> as I know the only way to fix that is to rebuild it from source. It
>>> has been like this for a while now.
>>>
>>
>> Are you sure? I tried this after your post on my lab machine (not
>> Fedora though, its Ubuntu 9.04)
>>
>> $ sudo echo $PATH
>> [sudo] password for suvayu:
>> /home/suvayu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/suvayu/root/bin
>>
>> I see two different directories that I add to $PATH in my
>> .bash_profile and .bashrc
>>
>>
>>> https://bugzilla.redhat.com/show_bug.cgi?id=475990
>>>
>>> Maybe you could create an alias that runs sudo env PATH=$PATH "$@"
>>> or something to sneak the path back into the sudo'ed command...
>>>
>>
>> That Bugzilla says updates have been pushed to F10. Shouldn't that
>> mean its fixed in F11 and F12?
>>
>>
> I think you miss one thing....
>
> When you do "sudo echo $PATH" $PATH is expanded before the sudo command
> is executed since it is an argument to the sudo command.
>
> To demonstrate what Tom is saying you need to prevent $PATH from being
> expanded by using sudo sh -c 'echo $PATH'
>
> As in...
>
> [egreshko at f12 ~]$ sudo sh -c 'echo $PATH'
> /sbin:/bin:/usr/sbin:/usr/bin
What about this then?
[sam at samlap ~]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/real/RealPlayer:/home/sam/.bin:/opt/real/RealPlayer:/home/sam/.bin
[sam at samlap ~]$ sudo sh -c 'echo $PATH'
/usr/bin:/bin
[sam at samlap ~]$ which lvdisplay
/sbin/lvdisplay
[sam at samlap ~]$ sudo lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID BPwrBK-v6IM-7mkX-pywX-amSI-nACz-xizvzL
LV Write Access read/write
LV Status available
# open 1
LV Size 109.62 GB
Current LE 3508
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol01
VG Name VolGroup00
LV UUID F0Nil4-F0Nf-fDX1-5YxX-QEyc-jPGf-kOiRcy
LV Write Access read/write
LV Status available
# open 1
LV Size 1.94 GB
Current LE 62
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
How can I run lvdisplay via Sudo, if it has a hard-coded path which
doesn't include /sbin? (but it is in *my* PATH). Am I being an idiot?
--
Sam
More information about the users
mailing list