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!

Recommended Answers

All 5 Replies

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

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 ~

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!

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 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...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.