• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1094
  • Last Modified:

Set default environment for root

I've set /etc/passwd so that /bin/bash is my shell for both the normal user as well as root. I've set up /etc/profile with a number of parameters i need (ex PATH, umask, PS1). When i log in with my user, i am assiging those settings. If i 'su -', i am also assigned those env settings.

However, if i just 'su' i lose them and get a default PATH of /usr/sbin:/usr/bin. interestingly, umask setting stays put.

Any ideas what's going on here?
0
ixarissysadmin
Asked:
ixarissysadmin
1 Solution
 
RowleyCommented:
From the su manpage:

If the first argument to su is a dash (-), the environment will be changed to what would be expected if the user actually logged in as the specified user. Otherwise, the environment is passed along, with the exception of $PATH,  which is controlled by PATH and SUPATH in /etc/default/su.

http://docs.sun.com/app/docs/doc/816-5166/su-1m?a=view
0
 
ixarissysadminAuthor Commented:
i did unhash SUPATH in that file and set it as i need, but nothing  changed.
0
 
gheistCommented:
Do yo have .profile in roots home directory ( / ) ?
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
omarfaridCommented:
when you do su - then the system will simulate full root login and read /etc/profile , /.profile , etc. while su alone will just switch the userid to root with the same env.
0
 
kishored2004Commented:
the - in the su command is optional. If you want to have the environment of the user you are switching to you would use the su -.Just doing an su will only give you the privileges of the user without importing any environment variables.

Check for /.bash_profile
0
 
ixarissysadminAuthor Commented:
no i don't have  a /.profile; nor a /.bash_profile

when i just 'su' my PATH changes to the default as stated above, whereas i want to change it.
0
 
RowleyCommented:
Have you remembered to comment out the PATH and SUPATH lines in /etc/default/su and set these up as desired? Works as expected for me...
# id
uid=0(root) gid=0(root)
# echo $PATH
/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/ucb
# su 
# echo $PATH
/usr/sbin:/usr/bin
# grep SUPATH /etc/default/su
# SUPATH sets the initial shell PATH variable for root
# SUPATH=/usr/sbin:/usr/bin
# vi /etc/default/su
# grep SUPATH /etc/default/su
# SUPATH sets the initial shell PATH variable for root
SUPATH=/usr/sbin:/usr/bin:/home
# su 
# echo $PATH
/usr/sbin:/usr/bin:/home
# ls -l /etc/default/su
-rw-r--r--   1 root     sys         1618 Oct  2 13:59 /etc/default/su
# uname -a
SunOS unknown 5.11 snv_97 i86pc i386 i86pc
# su - admin
Sun Microsystems Inc.   SunOS 5.11      snv_97  November 2008
-bash-3.2$ echo $PATH
/usr/bin:
-bash-3.2$ su admin
Password: 
bash-3.2$ echo $PATH
/usr/bin:
bash-3.2$ exit
exit
# vi /etc/default/su
# grep ^PATH /etc/default/su
PATH=/usr/bin:/home:
# su admin 
# echo $PATH
/usr/sbin:/usr/bin:/home

Open in new window

0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now