Su to user from root


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Su to user from root
# 1  
Old 10-24-2006
Su to user from root

I'm writing a script that does many things, but it runs as a root. It does some backups etc, and then it su's over to oracle user to do some oracle stuff, this way I don't have to worry about Oracle env variables etc. Saves time, headache etc.
The thing is that, this script worked perfectly on Solaris, but it not in Linux (Redhat and Suse).
Here is a snippet:
#!/usr/bin/ksh
## doing some maintenance as root user
tar -cvf /usr/home/dir
...
## Now do some oracle stuff###
SH_LOG=/tmp/script123.log
echo "Enter user name for oracle:"
read $ORA_USER
su - $ORA_USER "sqlplus -S -L / AS SYSDBA <<\EOF >$SH_LOG
SET HEADING OFF;
SELECT GROUP#, BYTES, STATUS FROM V\$LOG;
SPOOL OFF
EXIT;
EOF"
## EOF

This above script works and changes over to oracle user in Solaris, runs my sql commands and gives me a log. When I run it in Linux, it craps out. My guess it that "su -" does not pass the variables in Linux, so it doesn't understand $ORA_USER and $SH_LOG.
I even tried "su - $ORA_USER -c -m" options, they all failed to give me the desired results. Any ideas? Smilie
Thanks in advance.

-Nitin
# 2  
Old 10-24-2006
check what is the default shell and what is the profile file loaded... i guess profile and shell settings could be the problem.. they might be different in your unix and linux box
# 3  
Old 10-24-2006
The default shell in Linux as always is bash. I didn't write the script in bash, coz some Unix systems still don't have it. Hence, I prefer to use korn, coz it is standard across Unix. I've to run this script in a fleet of systems, so I don't want to change the shell and profile settings, all I want is that it execute my commnads in korn temporarily. Is there a way to tell what shell I want to use in 'su'.

Thanks for the reply,

Nitin
# 4  
Old 10-25-2006
Even in unix "su - " do not pass env variables to the new shell... it is just "su"

Code:
     To become user bin while retaining your previously  exported
     environment, execute:

     example% su bin

    To become user bin but change the environment to what  would
     be expected if bin had originally logged in, execute:

     example% su - bin

You might be using ksh in your script, but check the default shell and profile that gets loaded when you do "su" or login for oracle user...

In unix it might be loading the correct profile what you wanted but in linux it might be loading some bash profile which don't have correct settings.. compare both profile files in unix and linux
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to Switch from Local user to root user from a shell script?

Hi, I need to switch from local user to root user in a shell script. I need to make it automated so that it doesn't prompt for the root password. I heard the su command will do that work but it prompt for the password. and also can someone tell me whether su command spawns a new shell or... (1 Reply)
Discussion started by: Little
1 Replies

2. UNIX for Dummies Questions & Answers

Switching from root to normal user takes me to user's home dir

Whenever i switch from root to another user, by doing su - user, it takes me to home directory of user. This is very annoying as i want to be in same dir to run different commands as root sometimes and sometimes as normal user. How to fix this? (1 Reply)
Discussion started by: syncmaster
1 Replies

3. Shell Programming and Scripting

How to give root access to non root user?

Currently in my system Red Hat is installed. And Many user connect to my machine via SSH Techia Terminal. I want to give some users a root level access. Can anyone please help me how to make it possible. I too searched on the Google but didn't find the correct way Regards ADI (4 Replies)
Discussion started by: adisky123
4 Replies

4. UNIX for Advanced & Expert Users

Root and non-root user not able to delete the file

Hi!! one strange problem occurred with my RHEL 5 box. i'm having logs folder with ownership of non-root user. Created some files with root user under logs folder. here is the scene: -rw-r----- 1 root root 1048227 Feb 28 12:34 SystemOut_13.02.28_12.34.10.log -rw-r----- 1 root root ... (6 Replies)
Discussion started by: sukhdip
6 Replies

5. Shell Programming and Scripting

How to Login as another user through Shell script from current user[Not Root]

Hi Every body, I would need a shell script program to login as different user and perform some copy commands in the script. example: Supppose ora_toms is the active user ora_toms should be able to run a script where user: ftptomsp pass: XXX should login through and run the commands ... (9 Replies)
Discussion started by: ujjwal27
9 Replies

6. UNIX for Dummies Questions & Answers

Sudo to delegate permission from non-root user to another non-root user

I've been through many threads before i decide to create a separate thread. I can't really find the solution to my (simple) problem. Here's what I'm trying to achieve: As "canar" user I want to run a command, let's say "/opt/ocaml/bin/ocaml" as "duck" user. The only to achieve this is to... (1 Reply)
Discussion started by: canar
1 Replies

7. Solaris

java version mismatch for normal user and root user

:confused: I installed latest version of java ( jre 1.6) on Solaris Machine ......when I run java -version as root, shows the latest version but when I run java -version as normal user, shows the old / previous version What should I do to fix this ...should show the latest version... (3 Replies)
Discussion started by: frintocf
3 Replies

8. UNIX for Dummies Questions & Answers

How to allow access to some commands having root privleges to be run bu non root user

hi i am new to unix and i have abig task. i have to \run particular commands having root privileges from a non root user. i know sudo is one of the way but i need sum other approach kindly help Thanks (5 Replies)
Discussion started by: suryashikha
5 Replies

9. Shell Programming and Scripting

root user command in shell script execute as normal user

Hi All I have written one shell script for GPRS route add is given below named GPRSRouteSet.sh URL="www.google.com" VBURL="10.5.2.211" echo "Setting route for $URL for GPRS" URL_Address=`nslookup $URL|grep Address:|grep -v "#"|awk -F " " '{print $2}'|head -1` echo "Executing ... (3 Replies)
Discussion started by: mnmonu
3 Replies

10. UNIX for Advanced & Expert Users

Other than root user .Normal user is unable to create files

Hi all, I am using Sun Solaris 9 .In this system normal users unable to create files from the command line.I added these users in bin,adm and even root group i found them unable to create a file. (1 Reply)
Discussion started by: mallesh
1 Replies
Login or Register to Ask a Question