Solved

Set default environment for root

Posted on 2008-10-01
7
1,085 Views
Last Modified: 2013-12-27
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
Comment
Question by:ixarissysadmin
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
7 Comments
 
LVL 13

Expert Comment

by:Rowley
ID: 22614324
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
 

Author Comment

by:ixarissysadmin
ID: 22615224
i did unhash SUPATH in that file and set it as i need, but nothing  changed.
0
 
LVL 62

Expert Comment

by:gheist
ID: 22617267
Do yo have .profile in roots home directory ( / ) ?
0
Technology Partners: 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!

 
LVL 40

Expert Comment

by:omarfarid
ID: 22620510
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
 
LVL 2

Expert Comment

by:kishored2004
ID: 22621636
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
 

Author Comment

by:ixarissysadmin
ID: 22623555
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
 
LVL 13

Accepted Solution

by:
Rowley earned 500 total points
ID: 22623783
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

Technology Partners: 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!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java performance on Solaris - Managing CPUs There are various resource controls in operating system which directly/indirectly influence the performance of application. one of the most important resource controls is "CPU".   In a multithreaded…
Why Shell Scripting? Shell scripting is a powerful method of accessing UNIX systems and it is very flexible. Shell scripts are required when we want to execute a sequence of commands in Unix flavored operating systems. “Shell” is the command line i…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question