Solved

Set default environment for root

Posted on 2008-10-01
7
1,081 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
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
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

When you do backups in the Solaris Operating System, the file system must be inactive. Otherwise, the output may be inconsistent. A file system is inactive when it's unmounted or it's write-locked by the operating system. Although the fssnap utility…
Let's say you need to move the data of a file system from one partition to another. This generally involves dismounting the file system, backing it up to tapes, and restoring it to a new partition. You may also copy the file system from one place to…
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…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

791 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