I need execute script that have commands which should be run in root mode.
If I put sudo before command then when I run script I see permission denied ( I don't have a chance to write password).
If I run script with sudo then it writes - command not found.
If I put sudo su in the beginning of the script then after I inter password nothing happens. Script executes only when exit root mode.
How can make such script? Thank you.
Asked
Active
Viewed 3,354 times
3
ashim
- 967
- 1
- 7
- 10
2 Answers
4
You can set a script to not require a password via sudo with e.g. the following in /etc/sudoers:
user ALL=(ALL:ALL) NOPASSWD: /path/to/your/script
jmtd
- 9,255
- 2
- 25
- 26
-
@:jmtd I did not but it on sudo myscript it still ask password – ashim Mar 14 '12 at 20:44
-
@user16610 See [How to run a specific program as root without a password prompt?](http://unix.stackexchange.com/q/18830) : the more specific rule needs to come after the more general rule. – Gilles 'SO- stop being evil' Mar 14 '12 at 23:20
3
(Posted as a new answer since I can't comment & the edit is too small)
You can end the command with "" to prevent the user from running the command with arbitrary arguments.
user ALL=(ALL:ALL) NOPASSWD: /path/to/your/script ""
Now sudo /path/to/your/script works but sudo /path/to/your/script foo bar fails.
Sam Morris
- 992
- 6
- 10