Comprender la configuración de Sudoers

LinuxBeginner
Practicar Ahora

Introducción

En Linux, el usuario root tiene control ilimitado sobre el sistema. Sin embargo, iniciar sesión como root para trabajar a diario es peligroso. En su lugar, se utiliza sudo, que permite a los usuarios normales ejecutar comandos específicos con privilegios elevados.

El archivo que controla quién puede usar sudo y qué acciones puede realizar es /etc/sudoers. Este es uno de los archivos de políticas más sensibles de un sistema Linux, porque define los permisos administrativos delegados.

La gestión de este archivo requiere mucho cuidado. Un solo error de sintaxis puede impedir que todos los usuarios, incluidos los administradores, accedan al sistema. Por este motivo, nunca debe editar este archivo directamente con un editor de texto común. En su lugar, utilice una herramienta especial llamada visudo.

Este es un archivo de políticas, no solo una configuración práctica. Define quién puede tomar prestados privilegios administrativos, bajo qué condiciones y para qué comandos.

En este laboratorio, aprenderá a:

  1. Inspeccionar de forma segura la configuración de sudoers mediante visudo.
  2. Conceder privilegios administrativos a un usuario.
  3. Verificar que los privilegios funcionan correctamente.

Evaluar los privilegios actuales

Antes de realizar cambios, compruebe el estado actual. Para este laboratorio, hemos creado un usuario normal llamado alex. De forma predeterminada, los usuarios nuevos no tienen privilegios administrativos.

Inspeccionar el archivo Sudoers

Para consultar la configuración, utilizamos visudo. Esta herramienta bloquea el archivo y valida la sintaxis antes de guardarlo, lo que evita bloqueos accidentales del sistema.

Ese paso de validación es el motivo por el que existe visudo. Con los editores de texto normales, un pequeño error tipográfico podría detectarse solo después de guardar el archivo, cuando el acceso mediante sudo ya estaría dañado.

Consulte la configuración actual:

sudo visudo

Verá líneas que definen quién tiene privilegios. Por ejemplo:

root    ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

En este entorno, visudo abre el archivo en el editor nano. Pulse Ctrl+X para salir sin cambiar nada.

Verificar la falta de acceso

Ahora cambie al usuario alex e intente realizar una tarea administrativa.

Primero, cambie al usuario alex:

su - alex

Introduzca password cuando se le solicite.

A continuación, intente mostrar el contenido del directorio restringido /root:

sudo ls /root

Introduzca password cuando se le solicite.

Observe el error:

alex is not in the sudoers file.  This incident will be reported.

Esto confirma que alex es un usuario normal y no puede realizar acciones administrativas.

Este es el comportamiento seguro predeterminado. En la seguridad de Linux, comenzar con menos privilegios y conceder únicamente los necesarios forma parte del principio de mínimo privilegio.

Por último, vuelva a su usuario original (labex):

exit

Configurar los privilegios del usuario

Para conceder a alex la capacidad de ejecutar comandos como root, debe añadir una regla al archivo /etc/sudoers.

Primero, abra el archivo de forma segura:

sudo visudo

Desplácese hasta el final del archivo o busque la sección "User privilege specification" y añada la línea siguiente:

alex    ALL=(ALL:ALL) ALL

Desglose de la regla:

  • alex: el nombre de usuario al que se conceden los privilegios.
  • El primer ALL: la regla se aplica a las conexiones desde cualquier Host.
  • (ALL:ALL): el usuario puede ejecutar comandos como cualquier User (por ejemplo, root) y con cualquier Group.
  • El ALL final: el usuario puede ejecutar Any Command.

Esta regla es deliberadamente amplia con fines didácticos. En sistemas reales, los administradores suelen preferir reglas de sudo más limitadas, que permitan comandos específicos en lugar de conceder acceso total sin restricciones.

Por último, guarde el archivo y salga:

  • Pulse Ctrl+O y, después, Enter para guardar.
  • Pulse Ctrl+X para salir.

Si hubiera introducido un error tipográfico, visudo le habría avisado y habría evitado una configuración dañada.

Verificar los privilegios actualizados

Ahora que ha actualizado la configuración, alex debería tener todos los privilegios administrativos. Verifíquelo.

Primero, cambie al usuario alex:

su - alex

A continuación, vuelva a intentar ejecutar el comando privilegiado:

sudo ls /root

Introduzca password si se le solicita.

Observe el resultado. Ahora debería ver el contenido del directorio /root —probablemente vacío o con algunos archivos de implementación— sin errores de acceso denegado.

snap

Esto confirma que ha concedido correctamente privilegios elevados al usuario alex.

En este punto, alex todavía no es root de forma predeterminada. En su lugar, alex tiene permiso para solicitar una ejecución con privilegios elevados mediante sudo, lo que es más seguro y permite realizar auditorías con mayor facilidad que iniciar sesión normalmente como root.

Por último, cierre la sesión del usuario alex:

exit

Resumen

En este laboratorio, aprendió a gestionar los privilegios de los usuarios de forma segura.

Aspectos clave:

  1. La seguridad es lo primero: utilice siempre visudo para editar /etc/sudoers. Nunca lo edite directamente.
  2. Delegación de privilegios: puede conceder acceso de root a usuarios específicos sin compartir la contraseña de root.
  3. Verificación: pruebe siempre los privilegios nuevos para asegurarse de que funcionan según lo previsto.

Dominar la configuración de sudoers le permite crear un sistema seguro en el que cada usuario tenga exactamente los permisos que necesita, ni más ni menos.