Archivo sudoers, ejecuta comandos concretos sin la contraseña para sudo

about archivo sudoers ejecutar comandos sin password sudo

En el siguiente artículo vamos a echar un vistazo a cómo podemos ejecutar comandos en particular sin la contraseña sudo en Ubuntu gracias al archivo sudoers. Me parece lógico avisar de que lo que a continuación se va a poder leer tiene tan solo fines didácticos. Es imprescindible tener mucho cuidado al aplicar lo que aquí se va a poder leer. Si por lo que sea permites que un usuario ejecute el comando ‘rm’ sin necesidad de escribir la contraseña de sudo, podría eliminar de manera accidental o malintencionada cosas importantes del sistema operativo.

Como digo, en las siguientes líneas vamos a ver cómo ejecutar comandos específicos sin necesidad de escribir la contraseña de sudo en sistema operativos similares a Unix. Como todos los usuarios de Ubuntu sabemos, es necesario escribirla cuando ejecutemos un comando utilizando sudo. Pero a la hora de automatizar ciertas tareas, quizás tener que estar escribiéndola pueda ser un inconveniente.

Ejecuta comandos específicos sin la contraseña de sudo en Ubuntu

Si por algún motivo, sea el que sea, te interesa permitir que un usuario ejecute un comando en particular sin que tenga que escribir la contraseña de sudo, debes añadir ese comando al archivo de sudoers.

Digamos que queremos que un usuario llamado entreunosyceros ejecute el comando mkdir sin que tenga que escribir la contraseña sudo. Para ello, tendremos que editar el archivo sudoers. En la terminal (Ctrl+Alt+T) escribimos:

sudo visudo

Cuando se abra el archivo, al final de este añadiremos la siguiente línea:

línea add archivo sudoers comando mkdir

entreunosyceros ALL=NOPASSWD:/bin/mkdir

En esta línea que se añade en la anterior captura, entreunosyceros es el nombre de usuario. Según esta línea, este usuario va a poder ejecutar el comando ‘mkdir‘ sin necesidad de escribir la contraseña de sudo.

mkdir sin password de sudo

El sistema es sencillo. Vamos a poder agregar tantos comandos como queramos separándolos con comas, como se muestra a continuación:

dos comandos add archivo sudoers

entreunosyceros ALL=NOPASSWD:/bin/mkdir,/bin/chmod

Tras terminar de añadir la línea, cierra la sesión y vuelve a iniciarla o reinicia el sistema. De ahora en adelante, el usuario al que se refiere la línea añadida al archivo sudoers no va a necesitar escribir la contraseña sudo mientras ejecuta alguno de los comandos que se han añadido. Eso si, al ejecutar todos los demás comandos, si se le pedirá que escriba la contraseña para utilizar sudo.

Busca la ruta al comando y añádelo al archivo sudoers

En este caso de que queramos añadir un comando con una ruta diferente a la que hemos utilizado hasta ahora, la ruta hasta apt por ejemplo, necesitaremos escribir correctamente la ruta hasta el archivo ejecutable. En caso de no estar seguros de ella, podemos utilizar el comando ‘whereis‘ para averiguar la ruta correcta de apt. En la terminal (Ctrl+Alt+T) habría que escribir:

ruta hasta apt

whereis apt

Como se puede ver en la captura de pantalla anterior, la ruta para el comando apt es /usr/bin/apt, por lo tanto esta es la ruta que se debe agregar en el archivo sudoers.

En caso de que nos interese no tener que escribir la contraseña para sudo al ejecutar el comando apt, tendremos que volver a editar el archivo sudoers:

sudo visudo

Dentro habría que agregar el comando ‘apt’ en el archivo como hicimos con los anteriores comandos:

comando apt add archivo sudoers

entreunosyceros ALL=NOPASSWD:/bin/mkdir,/bin/chmod,/usr/bin/apt

Tras añadir el comando, guarda y cierra el archivo sudoers. Después cierra la sesión y vuelve a iniciarla. Ahora, ya se puede verificar si el usuario puede ejecutar el comando con el prefijo sudo sin utilizar la contraseña:

apt update sin password

sudo apt update

Pedir la contraseña de sudo para un comando específico en el archivo sudoers

Si tras hacerlo, si necesitas que el usuario vuelva a tener que escribir la contraseña, tan solo habrá que editar el archivo sudoers y quitar el comando agregado. Guardar el archivo, cerrar sesión y volver a iniciarla.

Una alternativa sería añadir la directiva ‘PASSWD:’ delante del comando que queramos que necesite escribir la contraseña de sudo. Siguiendo el ejemplo, vamos a modificar la línea añadida al archivo sudoers como se muestra a continuación:

passwd en un comando dentro archivo sudoers

entreunosyceros ALL=NOPASSWD:/bin/mkdir,/bin/chmod,PASSWD:/usr/bin/apt

En este caso, el usuario entreunosyceros puede ejecutar los comandos ‘mkdir‘ y ‘chmod‘ sin escribir la contraseña sudo. Sin embargo, va a tener que escribirla cuando quiera ejecutar el comando ‘apt’.


Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   German Rios dijo

    Hola. Pude editar el archivo sudoers como bien explicaste en el post. En este momento estoy empezando a usar arch. Para agregar el comando pacman, para determinadas acciones..como deberia hacer?, me interesa por ejemplo que no pida contraseña para actualizar el sistema operativo, ej: sudo pacman update. Pero que para rm pida pass. Gracias, un cordial saludo.