RayViljoen
RayViljoen

Reputation: 1331

Execute single command in shell script without sudo

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

Answers (2)

Kiran
Kiran

Reputation: 8548

Instantiate the shell using

sudo -u $USER_NAME bash

and execute the shell script by calling,

./program.sh

Upvotes: 0

user1978011
user1978011

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

Related Questions