Cómo agregar un usuario al archivo sudoers en Linux
Publicado: 2022-11-02 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.
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
.
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
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".
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.
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
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
El editor nano se abre con el archivo "/etc/fstab" cargado.
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
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
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
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
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