Ejecutar comando como sudo en un .sh

Haciendo un script en bash me encontré con un pequeño inconveniente, y gracias a mi amigo Apostols pudo ser solucionado fácilmente.

La rutina constaba de una serie de comandos de configuración, y una condición de que a una hora dada se realizará un shutdown; pero como saben shutdown no es un comando que puede ser realizado por default como usuario mortal, por esta razón debemos usar lo que Apostols plantea.

Supongamos que el usuario de la PC es USERMORTAL, y estamos usando debian:

Instalamos “sudo”

aptitude install sudo

Luego editaremos el archivo sudoers en /etc

vi /etc/sudoers

Y colocamos al final de el archivo la siguiente linea

USERMORTAL ALL = NOPASSWD: /sbin/shutdown

Recordando que la palabra USERMORTAL es el usuario con el que deseamos ejecutar el comando.

Ahora en la rutina .sh, para invocar al comando lo realizamos de la siguiente manera

sudo /sbin/shutdown now

Y listo!!!… ya puedes apagar tu equipo como usuario mortal en tu .sh

Nota: puedes utilizar el mismo procedimiento para diferentes comandos que desees, cuidando de adaptar correctamente el procedimiento.

Anuncios