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. |
Use
Code:
su - (And btw: with '$PATH' you tried to execute your path rather than display it. Use 'echo $PATH' to display it -- or any other variable). |
"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. |
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?)
|
Quote:
Quote:
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. |
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. |
Awesome! That was spot on... thanks again for the responses. Time to play as user instead of root... thank goodness!
|
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. |