Ejecutar un comando sudo pero sin contraseña

Introducción

El otro día, leí en Ask Ubuntu, una interesante pregunta, con su mas interesante respuesta, para ejecutar un comando «sudo» concreto sin necesidad de introducir la contraseña, es decir, un comando que sólo tenga derechos el administrador. Existen aplicaciones y comandos, que por sus características solo pueden/deben ser ejecutados por el administrador. Yo por ejemplo, al principio, me empeñaba en iniciar siempre Firestarter, y dado que requería derechos de administrador seguía un proceso parecido al que se explica en Ask Ubuntu, y que relataré a continuación.

En referencia al tema de Firestarter, craso error el mío, error de principiante. No es necesario tener en funcionamiento Firestarter, para que el cortafuegos haga su trabajo, dado que Firestarter solo es el interfaz gráfico (como tantos otros) de IPTables. Ahora utilizo Gufw, y lo ejecuto solo cuando lo necesito, y sin preocuparme, porque cada uno hace su trabajo sin necesidad de que los vigile.

Antes de continuar, indicar que no es algo recomendable, porque al hacer esto das permiso a que cualquiera pueda ejecutar el comando. Así que es necesario, controlar que es lo que haces con este comando. Explicado este punto, pasamos a la acción:

Cómo hacerlo

La foma mas correcta de hacer esta operación, es configurar «sudo» para ejecutar única y exclusivamente el comando que necesitamos sin introducir la contraseña. Es decir, si nuestra script, tiene varias líneas, no es recomendable hacerlo para todo el script, sino que es mas correcto, dar solo al comando concreto.

Atendiendo a lo indicado, lo primero es crear un script con el comando que necesitamos, darle permisos de ejecución y que el autor sea root, si no lo hacemos así, cualquier otro usuario, podría editar el comando, modificarlo e introducir lo que quiera, con el consecuente desastre (p.e. rm -rf /). Suponisndo que el script en cuestion se denomino «comando.sh», los pasos a seguir serían los siguientes:

sudo chown root:root comando.sh
sudo chmod 700 comando.sh

El siguiente paso es configurar sudo para permitir que «comando.sh», se ejecute sin contraseña, para ello tenemos que editar el archivo «sudoers», pero OJO, lo tienes que hacer ejecutando el siguiente comando en un terminal:

sudo visudo

Si no lo haces de este modo, te encontrarás en un bonito lío. Como puedes leer en «Como reparar sudoers«, a mi, no es la primera vez que me pasa.

Una vez puesto en la edición, tienes que buscar una línea con el siguiente contenido «%sudo ALL=(ALL:ALL) ALL». Bueno, pues debajo de esta línea tienes que añadir una línea adicional con el siguiente contenido:

nombredeusuario ALL=(ALL) NOPASSWD: /home/nombredeusuario/comando.sh

Donde «nombredeusuario» es tu nombre de usuario y tienes que indicar el directorio y el comando. Yo he puesto «/home/nombredeusuario/comando.sh», pero puede ser cualquier otro. Y sales del editor (pulsando el atajo de teclado Ctrl+X si lo haces desde nano)

Conclusiones

Yo se que a veces se vuelve cansino tu equipo pidiéndote la contraseña de «sudo» (también dependerá de lo que toques tu sistema, claro), pero muchas veces, perdemos el norte de lo que hacemos, tocamos y modificamos, y no nos damos cuenta del desastre que podemos ocasionar. «Al César lo que es del César, y a Dios lo que es de Dios». Cada uno que se ocupe de lo suyo. Separando el uso es como mejor rendimiento sacarás de tu equipo. De hecho, esto es algo, que parece que ha aprendido Windows, dado que ahora, empieza a pedir contraseñas, según que cosas vayas a hacer.

Más información | Ask Ubuntu

2 comentarios en “Ejecutar un comando sudo pero sin contraseña

  1. PR
    Predatux hace 10 años

    Gracias por la entrada.
    Llevo ya un tiempo peleándome con este asunto, y haga lo que haga, siempre me pide la clave…
    Alguna cosa estaré haciendo mal, pero sigo los pasos…

    1. LL
      LlegueYoo hace 9 años

      Hola Predatux, has podido resolver el caso?
      Necesito insertar en un script el password de administrador
      En un momento habia intentado esto:
      sudo -p «password» (script)
      Pero me funcionaba solo algunas veces
      Si has solucionado, avisa porfa

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *