LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   what is going on with $PATH ?? (https://www.linuxquestions.org/questions/linux-newbie-8/what-is-going-on-with-%24path-603802/)

usafitz 12-01-2007 04:06 PM

what is going on with $PATH ??
 
I have asked about this topic before but haven't really gotten a grasp of it, so I'm asking for more help if possible.

bottom line is I want to be able to run 'ifconfig' and other commands like it as my user (instead of root)... but I can't unless I'm logged in as root. It won't even work if I'm logged in as my user and su over to root. Prior posts said I needed to change the PATH for my user. Here's what I have:

[user1@localhost ~]$ $PATH
bash: /usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/user1/bin: No such file or directory
[user1@localhost ~]$ su
Password:
[root@localhost user1]# $PATH
bash: /usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/user1/bin: No such file or directory

Since they look basically the same, what the heck is going on? Do I need to add a path or what? Thanks for the help.

rupertwh 12-01-2007 04:23 PM

Use
Code:

su -
instead (man su) to get root's environment.

(And btw: with '$PATH' you tried to execute your path rather than display it. Use 'echo $PATH' to display it -- or any other variable).

pixellany 12-01-2007 04:31 PM

"su" means take on root powers
"su -" means to ALSO switch to root's environment, including $PATH.
Thus is is puzzling to see ANY difference.

To modify (anyone's) PATH, do this: export PATH="$PATH:<newpathname>"

eg, to add /sbin:
export PATH="$PATH:/sbin"
To make the entry permanent, you have to modify one of the startup scripts. Which one depends on the distro.

usafitz 12-01-2007 04:32 PM

cool, thanks rupertwh, that solved half of the conundrum. How can I add the same path to user so that I can execute that command as user instead of having to switch to root every time? (or is that not a smart idea?)

bigrigdriver 12-01-2007 04:48 PM

Quote:

How can I add the same path to user so that I can execute that command as user instead of having to switch to root every time?
pixellany wrote
Quote:

To modify (anyone's) PATH, do this: export PATH="$PATH:<newpathname>"

eg, to add /sbin:
export PATH="$PATH:/sbin"
To make the entry permanent, you have to modify one of the startup scripts. Which one depends on the distro.
What hasn't been said is that you can run the command from anywhere in the directory tree, if you enter the full path to the executable: example: /sbin/ifconf.
Also not mentioned is the matter of permission: if the user doesn't have permission to execute, it won't matter how you enter the command.

jschiwal 12-01-2007 05:16 PM

Use sudo and include the path in the command.
sudo /sbin/ifconfig

If you want to just list the information as in the above command, then you don't need to run the command as root, and don't need sudo. If you want to set the IP address or gateway address of an interface than you need to do that as root.

usafitz 12-01-2007 05:20 PM

Awesome! That was spot on... thanks again for the responses. Time to play as user instead of root... thank goodness!

chrism01 12-01-2007 07:11 PM

Actually, su means to switch user, (by default to root if you are non-root), but you can switch to any user from root if you want to test their env.
As mentioned, use the '-' empty switch to get the tgt user's env, otherwise you keep your env.


All times are GMT -5. The time now is 05:04 AM.