Run the script as other user


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Run the script as other user
# 1  
Old 01-19-2011
Run the script as other user

hello all

There are files on host1 which need to sftp'd to host2 everyday. user 'yyy' has his dsa keys set up on host 1 and host 2 . If user 'yyy' executes the below query without 'su' part, then all files are transferred.
Now user 'xxx' wants to run the script and transfer the files, but he was not allowed to set up dsa keys on host1 and host2. So user 'xxx' wants to login to host1 as user 'yyy', make use of dsa keys of user 'yyy'and execute the script and .

In a Nutshell
After logging into host1 as 'yyy', i wish to 'su' to user 'xxx', make use of his keys and run the script as user 'xxx' so that all the files are sftp'd. But 'su' part in the below query is not working. I was unable to login to user 'xxx' after logging into host1 as user 'yyy'. Please help me out on this.

#!bin/ksh
set -x
su - yyy << EOF
password
EOF
dd=`date +%G-%m-%d`
sftp yyy@host2 <<EOF
cd /aaa/bbb/ccc
mput *$dd*
EOF
exit
# 2  
Old 01-19-2011
Do you have sudo on your system? With this you can allow yyy to run particular scripts as user xxx either without a password prompt or with a prompt to type his own (ie yyy's own password). It's quite configurable and logs everything that's done.
# 3  
Old 01-19-2011
I cannot change the sudoers file. Permission is denied.
# 4  
Old 01-19-2011
You can't feed stored plaintext passwords into any sane authentication system, it's designed to only accept them from an interactive interface. Not being able to configure your system limits your options quite sharply.

Is it possible to ssh into that user? Even if it's on the same machine. You don't need administrative privileges to set up passwordless ssh, since it supports noninteractive key-based authentication. All you have to do is create the right files with the right contents in their respective ~/.ssh/ directories and it will go. Password-less logins with OpenSSH
# 5  
Old 01-19-2011
You could copy the private and public keys from the xxx account and use the -i identity_file option of ssh to use them.
Even better if this test works out OK, update the configuration file and setup the new identity file for host2 only.

eg ~yyy/.ssh/config:
Code:
host   host2
hostname host2.your.domain.name
user xxx
IdentityFile  ~/.ssh/xxx.id_rsa

# 6  
Old 01-19-2011
Quote:
#!bin/ksh
set -x
su - yyy << EOF
password
EOF
dd=`date +%G-%m-%d`
sftp yyy@host2 <<EOF
cd /aaa/bbb/ccc
mput *$dd*
EOF
exit
Some of the many reasons that the original script fails:

The first line should be "#!/bin/ksh" there is a "/" missing.
The "su -" command starts a new Shell and nothing after that line will be executed.
Afaik no version of "su" will accept a password as typeahead (i.e the <<EOF approach is flawed).

Hint: It is much easier to use Remote Shell (albeit within the local computer) to run commands as another user.
Maybe consider using a ".rhosts" file in account "yyy" and forget using "su -" and use Remote Shell instead.

Hmm. With your limited permissions, user "yyy" would need to create the ".rhosts" file.

Last edited by methyl; 01-19-2011 at 08:11 PM..
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 run a script, but not let user see code?

Hi, I want to deploy a (perl) script, in Linux. (Red Hat 7). Is there a way to protect the script itself from being viewed by the user, but still allow the user to run the script? I dont want the user to be able to see the source code of the script. (2 Replies)
Discussion started by: BG_JrAdmin
2 Replies

2. Shell Programming and Scripting

Su to another user to run script

I have a script ( the name is /tmp/script1) , the content is simple , just copy a file to another directory . Now I would like every user will change to a specific user ( eg. userA ) before run this script so that the script will be run by userA , that mean I want only userA run this script , I... (2 Replies)
Discussion started by: ust3
2 Replies

3. UNIX for Dummies Questions & Answers

How to allow a different user to run a script

Hi I have a script that i would like to be run by a different user. For example, I have a file called 'mytest.pl' created by user 'user4' What command should i use to make sure that user 'ydanial' has ability to run 'mytest.pl' ? Thanks (6 Replies)
Discussion started by: DallasT
6 Replies

4. Shell Programming and Scripting

Run SAME SCRIPT as different user

Dear all, i am doing an SVN backup script. Almost done. My problem is : Script should run by user : svn There is a chance to run the script by root itself.. so i coded like following #This script path and name ... (2 Replies)
Discussion started by: linuxadmin
2 Replies

5. AIX

Run script by another user

Guy's I have script to start the data base and this script need to be excited by Oracle user Is there any command to be excited by root and to run this script Start_Oracal_DB.sh by Oracle user Pls Advice … Excessive formatting removed. I have told you so on several occasions now and... (2 Replies)
Discussion started by: Mr.AIX
2 Replies

6. Shell Programming and Scripting

how to run script? call other script? su to another user? make a cron?

Good morning. I am searching for "how-to"'s for some particular questions: 1. How to write a script in HP-UX 11. 2. How to schedule a script. 3. How to "call" scripts from the original script. 4. How to su to another user from within a script. This is the basics of what the... (15 Replies)
Discussion started by: instant000
15 Replies

7. Shell Programming and Scripting

Run the script from another user

Hello Experts I want to run script from another user in unix . Also the script has been calling from SQL. HOST command helps to call the unix file from sql . But my problem is the unix script has to be run by another user. I tried tht following $ sudo su - user2 -c who... (4 Replies)
Discussion started by: Krishnaramjis
4 Replies

8. Shell Programming and Scripting

Have script run as a different user

Hi all, I'm a newbie to the Linux world. I have a script that needs to run under "UserB". But I don't want to give out the password to UserB. Is there a way to setup the script to run as "UserB" when UserA runs it. Thanks in advance for your assistance. (1 Reply)
Discussion started by: mikey20
1 Replies

9. UNIX for Advanced & Expert Users

Run shell script as different user

I want to start off by saying thanks to everyone here, you're answers and suggestions are always very helpful. I have a shell script which is invoked when an email is received. This shell script extracts any attachments that are sent with this email, and then runs a script which submits these... (8 Replies)
Discussion started by: mskarica
8 Replies

10. UNIX for Dummies Questions & Answers

run a script with another user id

Hi, I have a script A.run which will call B.run. How can i run B.run with a common id instead of using my login id? I have tried as below, in Script A.run : ......... echo "Running B.run......" rsh -l commonid hostname B.run ......... but it's give me "Permission Denied"....... ... (3 Replies)
Discussion started by: wan
3 Replies
Login or Register to Ask a Question