How to run a shell script with different user with in another shell script ?

How to run a shell script with different user from/with in  another shell script ?
Some times it is required to run a shell script with a specific OS user from another shell script, in such cases we can call the actual shell script with following options from another shell script.
Here important thing to understand is one line ...
/bin/su - -c ""
/bin/su : it helps to call su binary to swith user
-c option tells the command to run

009:/opt # cat 1.sh
#!/bin/sh

echo "in one"
/bin/su - smadmin -c "/opt/2.sh"

009:/opt # cat 2.sh
#!/bin/sh

echo "in two"
id
pwd
ls -lrt


009:/opt # cat test.sh
#!/bin/sh

$*
RC=$?
echo "ant_exec return code is $RC"
exit $RC

So when we run the test.sh script which calls one and internally calls 2.sh will show output like below ...
009:/opt # ./test.sh /opt/1.sh
in one
in two
uid=1009(smadmin) gid=112(db2iadm1) groups=16(dialout),33(video),111(dasadm1),112(db2iadm1)
/home/smadmin
total 12
drwxr-xr-x  2 smadmin db2iadm1 4096 2013-01-02 20:57 bin
drwxrwsr-t 24 smadmin db2iadm1 4096 2013-01-14 12:37 sqllib
drwxrwxr-x  3 smadmin db2iadm1 4096 2013-02-01 16:28 smadmin
ant_exec return code is 0

Read more

Popular Posts

Enter your email address:

Buffs ...

Tags


Powered by WidgetsForFree