954,546 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Passing a variable with a password to the SU command

I am trying to install 2 rpm files that need root privileges. However, I don't want to prompt the user twice. Currently I am doing the following in my script:

echo "*************************************************************"
echo "In order to install acme package, you need to log in as root"
echo "*************************************************************"
su -c "ACME_QUIET=y rpm -ivh /home/acmeUser/acme_install/components/acme/acme*"
echo "**************************************************************************"
echo "In order to install acmebase package, you need to log in as root."
echo "**************************************************************************"
su -c "rpm -ivh /home/acmeUser/acme_install/components/acme/acmebase*"

The above works just fine. However, they have to login twice.

I would like to do something like this:


echo "*************************************************************"
echo "In order to install acme package, you need to log in as root"
echo "*************************************************************"
read PASSWORD

I would then like to give the $PASSWORD variable to the SU command somehow. I just can't seem to figure it out. Another option would be to use SUDO (so people tell me), but I thought you had to configure it before hand. This is a script that is run on many many machines and I can't configure SUDO for this purpose. Does anyone have an idea on how to get around this?

Thanks!

stharmon
Newbie Poster
8 posts since Nov 2004
Reputation Points: 10
Solved Threads: 0
 

I am trying to install 2 rpm files that need root privileges. However, I don't want to prompt the user twice. Currently I am doing the following in my script:

echo "*************************************************************" echo "In order to install acme package, you need to log in as root" echo "*************************************************************" su -c "ACME_QUIET=y rpm -ivh /home/acmeUser/acme_install/components/acme/acme*" echo "**************************************************************************" echo "In order to install acmebase package, you need to log in as root." echo "**************************************************************************" su -c "rpm -ivh /home/acmeUser/acme_install/components/acme/acmebase*"

The above works just fine. However, they have to login twice.

I would like to do something like this:

echo "*************************************************************" echo "In order to install acme package, you need to log in as root" echo "*************************************************************" read PASSWORD

I would then like to give the $PASSWORD variable to the SU command somehow. I just can't seem to figure it out. Another option would be to use SUDO (so people tell me), but I thought you had to configure it before hand. This is a script that is run on many many machines and I can't configure SUDO for this purpose. Does anyone have an idea on how to get around this?

Thanks!

whats wrong with using the & command?

--HV

HawkeVIPER
Junior Poster in Training
72 posts since Jan 2005
Reputation Points: 10
Solved Threads: 4
 
Another option would be to use SUDO (so people tell me),

That was what I was going to suggest :cheesy:

You can pass the password using a pipe I guess ~ :-|
I know how to do this in perl, but not in bash at the moment ~

YUPAPA
Light Poster
42 posts since Dec 2004
Reputation Points: 10
Solved Threads: 0
 

It looks like I was able to use ; to separate the commands and it worked just fine. I had problems using &

Thanks for the help!

stharmon
Newbie Poster
8 posts since Nov 2004
Reputation Points: 10
Solved Threads: 0
 

I understand what ; does on a command prompt and what not. What I DON'T understand, is how you were able to pass the password to SU with multiple commands (using ; )? So how'd you do it?

Comatose
Taboo Programmer
Team Colleague
2,910 posts since Dec 2004
Reputation Points: 361
Solved Threads: 215
 
I understand what ; does on a command prompt and what not. What I DON'T understand, is how you were able to pass the password to SU with multiple commands (using ; )? So how'd you do it?

I wasn't able to "pass" the password to SU. Instead, I combined the commands into one (using ;). That way the users were only prompted once during the install... If you ever find out how to pass the password to SU, I would like to know as well...

stharmon
Newbie Poster
8 posts since Nov 2004
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You