Reputation: 1331
I have a simple shell script that is run with sudo as most of the script requires it, yet one of the commands in the script is a Homebrew install, which cannot be executed with sudo..
So, my question is when executing a shell script with sudo how do I execute sub commands as the current user and then continue the remainder of the script with sudo.
Prompting the user to enter his password again is not really practical as the script takes really long to execute and would require waiting 5-10 min for the prompt.
Upvotes: 14
Views: 5742
Reputation: 8548
Instantiate the shell using
sudo -u $USER_NAME bash
and execute the shell script by calling,
./program.sh
Upvotes: 0
Reputation: 3589
The easiest way is to run the subcommand via sudo
from within the script. The user id to run with can be obtained by $SUDO_USER (look at the output of sudo env
):
sudo -u $SUDO_USER ./exec_as_normal_user.sh
Upvotes: 13