Sponsored Content
Top Forums Shell Programming and Scripting Switching user inside a shell script doesn't seem to work Post 302894075 by John K on Monday 24th of March 2014 01:06:02 AM
Old 03-24-2014
Switching user inside a shell script doesn't seem to work

Linux version : Oracle Linux 6.4
Shell : Bash

The following script will be run as root. During the execution, it should switch to oracle user and execute few commands.
After googling and searching within unix.com , I came up with the following syntax

## Enclosing all commands in double quotes with the following syntax
Code:
su -l anotheruser -c "command1;command2;command3;..."

## Using single quote like below didn't work for me
Code:
su -l anotheruser -c 'command1;command2;command3;...'

So, I created the following simple script called test.sh and executed it.
But it seems that the switch user using su didn't work properly.
/tmp/who.txt file shows root. It should show orace user if su worked properly.
/tmp/MYVAR2.txt is empty . It should show Duffy
/tmp/Instancename.txt is empty. It should show JUMBO1


Code:
# cat test.sh
#!/bin/bash
#Usage     :  /root/SCRIPTS/test.sh <Argument1>
echo -e "\n"

## Currently you are root user

## su to oracle user and run the following commands which are separated by semi colon

su -l oracle -c "export ORACLE_SID=$11;export MYVAR1=Stomper;export MYVAR2=Duffy; echo `whoami` >/tmp/who.txt;echo $1 >/tmp/Arg_name.txt;echo $ORACLE_SID >/tmp/Instancename.txt;echo $MYVAR2 >/tmp/MYVAR2.txt"

whoami ## Now you should be back as root
#

-- Executing the script
Code:
#
# test.sh JUMBO


root
#

--- Verifying the content of the files
Code:
# cat /tmp/who.txt
root
# cat /tmp/Arg_name.txt
JUMBO
#
#
# cat /tmp/MYVAR2.txt

# cat /tmp/Instancename.txt

#

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

grep doesn't work within shell script?

I am trying to run the following code from a script file but it complains that syntax of (both instances of) grep is wrong. When I copy and paste it to the terminal, it is OK. Any idea what the problem might be? set i = `grep -c #define flags.h` while ($i>20) @ i-- my func (`cat... (4 Replies)
Discussion started by: barisgultekin
4 Replies

2. UNIX for Dummies Questions & Answers

Script doesn't work, but commands inside work

Howdie everyone... I have a shell script RemoveFiles.sh Inside this file, it only has two commands as below: rm -f ../../reportToday/temp/* rm -f ../../report/* My problem is that when i execute this script, nothing happened. Files remained unremoved. I don't see any error message as it... (2 Replies)
Discussion started by: cheongww
2 Replies

3. Shell Programming and Scripting

switching to another user in shell script...

Hi, I have a shell script in which I need to switch to another user and execute some commands and then come back to the original user. To make it more clear - I have to log in as user root then 'su' to jag - execute a script called backup.sh and then logout and come back to root again.. ... (1 Reply)
Discussion started by: bjagadeesh
1 Replies

4. Shell Programming and Scripting

shell script, echo doesn't work

#!/bin/sh something(){ echo "Inside something" echo $1 $2 } val=$(something "Hello " "world") Output expected: Inside somethingHello world But it's not echoing. (4 Replies)
Discussion started by: cola
4 Replies

5. UNIX for Dummies Questions & Answers

Switching user inside a shell script

Dear All, I want to switch a user inside a shell script.My current user say x and user y to whom i want to switch both have login on the same server,the one on which i want to execute my script on. "I want to do something like this su - y Password should be provided in the script itself.And... (6 Replies)
Discussion started by: navjotmannan
6 Replies

6. Shell Programming and Scripting

$RANDOM does not work inside a shell script

Hi folks I'm coding on Ubuntu 9.04 standard shell. I'm writing a script that needs to generate a random number at some point of its execution. When I do echo $RANDOMas a command inside shell, I clearly get some randomly generated number However when I do i=`$RANDOM` echo $ior even... (14 Replies)
Discussion started by: ksk
14 Replies

7. Shell Programming and Scripting

Perl variables inside Net::Telnet::Cisco Module doesn't work

I am writing perl script to configure Cisco device but Variables inside Net::Telnet::Cisco Module doesn't work and passed to device without resolving. Please advise. here is a sample of script: use Net::Telnet::Cisco; $device = "10.14.199.1"; ($o1, $o2, $o3, $o4) = split(/\./,$device);... (5 Replies)
Discussion started by: ahmed_zaher
5 Replies

8. UNIX for Dummies Questions & Answers

find command in shell script doesn't work

Hello all, Something strange going on with a shell script I'm writing. It's trying to write a list of files that it finds in a given directory to another file. But I also have a skip list so matching files that are in that skip list should be, well uhm, skipped :) Here's the code of my... (2 Replies)
Discussion started by: StijnV
2 Replies

9. Shell Programming and Scripting

How to login as a different user inside a shell script?

hi, i want to login as a different user inside a shell script and then call another shell script from that script. how to do that? original script : script_A.sh so when the script_A.sh is called , i want to login as a different user and then call another shell script(script_B.sh) from... (3 Replies)
Discussion started by: Little
3 Replies

10. HP-UX

Su to another user from root doesn't work within shell script

Hello I have a shell script that is run as root. Script rins ok until the point where it have to switch to user "mqm" to run other commands. It just hangs at the point of this line in the script su - mqm -c "dspmq" I ran the same commands at the terminal and they run fine. Any thoughts. (6 Replies)
Discussion started by: mo12
6 Replies
PTS_SOURCE(1)						       AFS Command Reference						     PTS_SOURCE(1)

NAME
pts_source - Read pts commands from a file SYNOPSIS
pts source [-file] <file name> [-cell] <cell name> [-noauth] [-localauth] [-force] pts so [-f] <file name> [-c] <cell name> [-n] [-l] [-f] DESCRIPTION
The pts source runs commands from a file as if they were typed in pts interactive mode. The command can be run from the command line or interactively. CAUTIONS
Prior to OpenAFS 1.4.5 and OpenAFS 1.5.23, the pts source command was only available on Unix or Linux and when OpenAFS was compiled with the supergroups option (disabled by default). As of OpenAFS 1.4.5 and 1.5.23, it is always available. OPTIONS
pts source takes the following options: -cell <cell name> Names the cell in which to run the command. For more details, see pts(1). -force Enables the command to continue executing as far as possible when errors or other problems occur, rather than halting execution at the first error. -help Prints the online help for this command. All other valid options are ignored. -localauth Constructs a server ticket using a key from the local /etc/openafs/server/KeyFile file. Do not combine this flag with the -cell or -noauth options. For more details, see pts(1). -noauth Assigns the unprivileged identity anonymous to the issuer. For more details, see pts(1). OUTPUT
This command shows the output of each command in the file as if it were run normally. EXAMPLES
Here is an example of using pts source in a pts interactive session: % echo examine admin > /tmp/commands.txt % pts interactive pts> source /tmp/commands.txt Name: admin, id: 1, owner: system:administrators, creator: anonymous, membership: 2, flags: S----, group quota: 20. pts> quit % SEE ALSO
pts(1), pts_interactive(1), pts_quit(1), pts_sleep(1) COPYRIGHT
Copyright 2007 Jason Edgecombe <jason@rampaginggeek.com> This documentation is covered by the BSD License as written in the doc/LICENSE file. This man page was written by Jason Edgecombe for OpenAFS. OpenAFS 2014-04-08 PTS_SOURCE(1)
All times are GMT -4. The time now is 02:06 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy