shell script how to switch users?

Jacques B. jjrboucher at gmail.com
Thu Jan 4 13:49:38 UTC 2007


On 1/4/07, Rajiv Jaisankar <rajiv.jaisankar at gmail.com> wrote:
> Hi All,
> i am not sure if this is the right mailing list for asking this question. I
> would appreciate any help on this.
>
> I want to switch users using a shell script, i.e.
> Say i am logged in as user1. I would like to say su - user2 in my script.
>  I would be performing some operations as user "user2" as part of the script
> after logging in as this user.
> Finally i will be exiting back to user1 shell.
>
> How will i login as user2 through shell script?
> How will i  execute scripts as user2 after logging in from shell script?
> Even if i am able to login as user2
> any commands after "su - user2" are not executed as user2. They are executed
> only as user1 when i exit the
> user2 shell.
>
> --
> Regards,
> Rajiv
> --
> fedora-list mailing list
> fedora-list at redhat.com
> To unsubscribe:
> https://www.redhat.com/mailman/listinfo/fedora-list
>
>
Use the -c option with su, and call a new script to run as that user.

I tried the following:

test.sh script:
#!/bin/bash
echo "before su"
su root -c ./rootscript.sh
echo "after su"
whoami

rootscript.sh (located in the same directory hence why called by ./rootscript)
#!/bin/bash
echo "now in sub shell"
whoami
echo "exiting sub shell"

It behaved exactly as you'd like.  Within the second script, I was
root running the commands.

Jacques B.




More information about the fedora-list mailing list