Cómo agregar un usuario al archivo sudoers en Linux

Publicado: 2022-11-02
Computadora portátil Linux que muestra un indicador de bash
fatmawati achmad zaenuri/Shutterstock.com
Si le dicen que un usuario "no está en el archivo sudoers", puede otorgarle privilegios completos de sudo con el comando usermod. Para controlar lo que un usuario puede hacer con sudo, edite el archivo sudoers con visudo.

Las personas que pueden usar el comando sudo de Linux son miembros de un club pequeño y selecto, a veces llamado la lista de "sudoers". Cada miembro tiene los mismos poderes que el root . Entonces, ¿cómo te unes a ese club? Veremos cómo agregar una persona a sudoers y cómo editar el archivo sudoers para limitar los permisos.

Tabla de contenido

sudo: tu alter ego con superpoderes
El archivo sudoers y visudo
Agregue un nuevo usuario sudo en Ubuntu y otras distribuciones de Linux
Limite los privilegios de sudo editando el archivo sudoers
Cualquiera que tenga este comando

sudo: tu alter ego con superpoderes

En las instalaciones de Linux, el usuario raíz es el usuario con más privilegios. Pueden realizar cualquier tarea administrativa, acceder a cualquier archivo independientemente de quién sea su propietario y pueden crear, manipular e incluso eliminar a otros usuarios.

Este nivel de poder es peligroso. Si root comete un error, los resultados pueden ser catastróficos. Tienen la capacidad de montar y desmontar sistemas de archivos y sobrescribirlos por completo. Una forma mucho más segura de trabajar es nunca iniciar sesión como root .

8 formas de modificar y configurar Sudo en Ubuntu
RELACIONADO 8 formas de ajustar y configurar Sudo en Ubuntu

Los usuarios designados pueden usar sudo para obtener temporalmente poderes administrativos, realizar la acción requerida y luego volver a su estado normal sin privilegios. Esto es más seguro porque invocas conscientemente tus poderes superiores cuando los necesitas y mientras estás concentrado en hacer lo que sea que los requiera.

El comando sudo es el equivalente en Linux de gritar “Shazam”. Cuando terminan las cosas aterradoras, abandonas a tu alter ego superpoderoso y vuelves a tu yo normal y monótono.

El inicio de sesión como root está desactivado de forma predeterminada en la mayoría de las distribuciones modernas, pero se puede restablecer. No es recomendable utilizar la cuenta raíz para el trabajo diario. Los errores que normalmente afectarían a un solo usuario o que se bloquearían por completo debido a privilegios insuficientes, pueden ejecutarse sin obstáculos si root los emite.

Las distribuciones modernas de Linux otorgan privilegios de sudo a la cuenta de usuario que se crea durante los pasos de configuración de instalación o posteriores a la instalación. Si alguien más intenta usar sudo , verá un mensaje de advertencia como este:

 mary no está en el archivo sudoers. Este incidente será reportado.

Eso parece bastante claro. Nuestra usuaria mary no puede usar sudo porque no está "en el archivo sudoers". Entonces, veamos cómo podemos agregarla.

RELACIONADO: Cómo controlar el acceso a sudo en Linux

El archivo sudoers y visudo

Antes de que alguien pueda usar el comando sudo , debemos trabajar con el archivo sudoers . Esto enumera los grupos de usuarios de los usuarios que pueden usar sudo . Si necesitamos hacer modificaciones al archivo, debemos editarlo.

El archivo sudoers debe abrirse con el comando visudo . Esto bloquea el archivo sudoers y evita que dos personas intenten realizar cambios al mismo tiempo. También realiza algunas comprobaciones de cordura antes de guardar sus ediciones, asegurándose de que se analicen correctamente y sean sintácticamente sólidas.

Tenga en cuenta que visudo no es un editor, inicia uno de sus editores disponibles. En Ubuntu 22.04, Fedora 37 y Manjaro 21, visudo lanzó nano. Ese podría no ser el caso en su computadora.

Si queremos darle a alguien acceso a todos los privilegios de sudo , solo necesitamos hacer referencia a cierta información del archivo sudoers . Si queremos ser más granulares y darle a nuestro usuario algunas de las capacidades de root , necesitamos editar el archivo y guardar los cambios.

De cualquier manera, necesitamos usar visudo .

RELACIONADO: Cómo salir del editor Vi o Vim

Agregue un nuevo usuario sudo en Ubuntu y otras distribuciones de Linux

Tenemos dos usuarios que necesitan acceso a privilegios de raíz para poder desempeñar sus funciones laborales. Ellos son Tom y Mary. Mary necesita tener acceso a todo lo que root puede hacer. Tom solo necesita instalar aplicaciones.

Agreguemos primero a Mary al grupo de sudoers. Necesitamos comenzar visudo .

 sudo visudo 

Lanzamiento de visudo en Ubuntu Linux

Desplácese hacia abajo en el editor hasta que vea la sección "Especificación de privilegios de usuario". Busque un comentario que diga algo similar a "Permitir que los miembros de este grupo ejecuten cualquier comando".

El archivo sudoers abierto en el editor nano

Se nos dice que los miembros del grupo sudo pueden ejecutar cualquier comando. Todo lo que necesitamos saber en el caso de Mary es el nombre de ese grupo. No siempre es sudo ; puede ser wheel u otra cosa. Ahora que sabemos el nombre del grupo, podemos cerrar el editor y agregar a Mary a ese grupo.

Cómo cambiar los datos de usuario con chfn y usermod en Linux
RELACIONADO Cómo cambiar los datos de usuario con chfn y usermod en Linux

Estamos usando el comando usermod con las opciones -a (añadir) y -G (nombre del grupo). La opción -G nos permite nombrar el grupo al que nos gustaría agregar el usuario, y la opción -a le dice a usermod que agregue el nuevo grupo a la lista de grupos existentes en los que ya se encuentra este usuario.

Si no usa la opción -a , el único grupo en el que estará su usuario es el grupo recién agregado. Verifique dos veces y asegúrese de haber incluido la opción -a .

 sudo usermod -aG sudo mary 

Usando usermod para agregar el usuario mary al grupo sudo

La próxima vez que Mary inicie sesión, tendrá acceso a sudo . La hemos iniciado sesión y estamos tratando de editar el archivo de la tabla del sistema de archivos, "/etc/fstab". Este es un archivo que está fuera del alcance de todos menos de root .

 sudo nano /etc/fstab 

Usando usermod para agregar el usuario mary al grupo sudo

El editor nano se abre con el archivo "/etc/fstab" cargado.

usuario mary editando el archivo /etc/fstab usando sudo

Sin privilegios de sudo , solo podría abrir esto como un archivo de solo lectura. Mary ya no tiene esas restricciones. Puede guardar cualquier cambio que haga.

Cierra el editor y no guardes ningún cambio que hayas hecho.

Limite los privilegios de sudo editando el archivo sudoers

A nuestro otro usuario, Tom, se le otorgará permiso para instalar software, pero no recibirá todos los privilegios que se otorgaron a Mary.

Necesitamos editar el archivo sudoers .

 sudo visudo 

Lanzamiento de visudo en Ubuntu Linux

Desplácese hacia abajo en el editor hasta que vea la sección "Especificación de privilegios de usuario". Busque un comentario que diga algo similar a "Permitir que los miembros de este grupo ejecuten cualquier comando". Es el mismo punto en el archivo donde encontramos el nombre del grupo al que necesitábamos agregar a Mary.

Agregue estas líneas debajo de esa sección.

 # usuario tom puede instalar software
tom ALL=(raíz) /usr/bin/apt 

Agregar nuevas entradas al archivo sudoers

La primera línea es un simple comentario. Tenga en cuenta que hay una pestaña entre el nombre de usuario "tom" y la palabra "Todos".

Esto es lo que significan los elementos en la línea.

  • tom : el nombre del grupo predeterminado del usuario. Por lo general, es el mismo que el nombre de su cuenta de usuario.
  • ALL= : esta regla se aplica a todos los hosts de esta red.
  • (root) : los miembros del grupo "tom", es decir, el usuario Tom, pueden asumir privilegios de root para los comandos enumerados.
  • /usr/bin/apt : Este es el único comando que el usuario Tom puede ejecutar como root .

Hemos especificado el administrador de paquetes apt aquí porque esta computadora usa Ubuntu Linux. Deberá reemplazar esto con el comando apropiado si está utilizando una distribución diferente.

Iniciemos sesión con Tom y veamos si obtenemos el comportamiento esperado. Intentaremos editar el archivo “/etc/fstab”.

 sudo nano /etc/fstab 

Intentando editar el archivo /etc/fstab sin privilegios de sudo

Ese comando es rechazado y se nos dice que "el usuario tom no puede ejecutar '/usr/bin/nano /etc/fstab' como root..."

Eso es lo que queríamos. Se supone que el usuario Tom solo puede usar el administrador de paquetes apt . Asegurémonos de que puedan hacer eso.

 sudo apt instalar neofetch 

Usuario Tom usando el comando apt con sudo

El comando se ejecuta con éxito para Tom.

Cualquiera que tenga este comando

Si todos sus usuarios pueden usar sudo , tendrá el caos en sus manos. Pero vale la pena promocionar a otros usuarios para que puedan compartir su carga administrativa. Solo asegúrate de que sean dignos y vigílalos.

Incluso si usted es el único usuario en su computadora, vale la pena considerar crear otra cuenta de usuario y darle acceso completo a sudo . De esa manera, si alguna vez se encuentra bloqueado en su cuenta principal, tiene otra cuenta con la que puede iniciar sesión para tratar de remediar la situación.

RELACIONADO: Cómo revisar el uso del comando sudo en Linux