I am writing a simple shell script which changes the mac address of the network hardware. One of the line is :
sudo ifconfig eth0 hw ether 00:99:99:00:00:00
My problem is with sudo the script prompts for password. Is there any way that I could do this without prompting the user for password ???
Most definitely, if you don't mind making that particular command 'free for use' for that particular user:
See basically my other answer here: Shell script - Sudo-permissions lost over time
The simplest thing that may work is
myuser = NOPASSWD: /sbin/ifconfig
Also, you could sudo an arbitrary command on the same terminal (tty/vty), and sudo
will cache the authentication for a while (or until sudo -k
), so you may start the script and it will 'remember' the credentials from your earlier sudo
invocation. I sometimes do this when composing pipes with sudo
(just preceded them with sudo true
)
echo "password" | sudo -S ifconfig eth0 hw ether 00:99:99:00:00:00
You need a sudo
configuration line which allows for the command to be executed by the user without password prompt.
You can disable the password prompt for a whole user (more dangerous, but perhaps ok if you are the only user on your desktop -- DONT do this on a server ):
yourusername ALL=(ALL) NOPASSWD: ALL
or more restrictive, only allowing the ifconfig command:
yourusername ALL= NOPASSWD: /sbin/ifconfig
See: man sudoers
, man sudo
http://ubuntuforums.org/showthread.php?t=1132821
http://www.linuxhelp.net/guides/sudo/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With