1

This question already has an answer here:

I created a simple bash script which contains the command ifconfig. In general I want to execute such a privileged script to run as non-root user. I have tried hown root:users ./path/to/script.sh followed by chmod 4550 ./Desktop/dhcp_client.sh I tried even 4755. I want to use bash scripts to include some privileged commands then I must run the script that contains them as non-root. Then I must invoke these scripts from an application which is run as non-root.

marked as duplicate by Celada, Networker, Stephen Kitt, Anthon, jasonwryan Mar 8 '15 at 17:57

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Take a look at man sudo. – Cyrus Mar 8 '15 at 12:30
  • Take a look at my update. – 3bdalla Mar 8 '15 at 12:31
1

Not exactly a pretty solution, but shouldn't it work when you run commands that require root privileges with sudo inside the script and add a nopasswd rule for them?

  • Sorry, but, that is done with ? – 3bdalla Mar 8 '15 at 14:53
  • edit your sudoers file with visudo and add username ALL = NOPASSWD: /usr/sbin/ifconfig with ifconfig as example – Soopernaut Mar 8 '15 at 15:11
  • 2
    Usually that is a horrid horrid answer. Your allowing anything in script.sh to be run as root. It's not -so- bad when it's a compiled application, but when it's shell script (as in the question) you can just edit it with a text editor and run any privileged command you want. If your going to go this route make sure to allow sudo to the individual commands and not the shell script it's self. – coteyr Mar 8 '15 at 15:46
  • 1
    Did not think about this, glad you brought it up. Couldn't you just write protect the script to prevent that scenario? – Soopernaut Mar 8 '15 at 16:00

Not the answer you're looking for? Browse other questions tagged or ask your own question.