Cómo verificar si un usuario tiene acceso sudo en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo verificar si un usuario tiene acceso sudo en Linux. Explorarás tres métodos comunes: probar los privilegios sudo directamente utilizando sudo -l, examinar el archivo de configuración /etc/sudoers y verificar si el usuario pertenece al grupo sudo.

Al completar estos pasos, adquirirás habilidades prácticas para entender y verificar los permisos de usuario relacionados con tareas administrativas en un entorno Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") subgraph Lab Skills linux/cat -.-> lab-558774{{"Cómo verificar si un usuario tiene acceso sudo en Linux"}} linux/sudo -.-> lab-558774{{"Cómo verificar si un usuario tiene acceso sudo en Linux"}} linux/groups -.-> lab-558774{{"Cómo verificar si un usuario tiene acceso sudo en Linux"}} end

Probar los privilegios sudo con sudo -l

En este paso, aprenderás cómo verificar tus privilegios sudo utilizando el comando sudo -l. sudo (SuperUser DO) permite a un usuario autorizado ejecutar un comando como superusuario o como otro usuario, según lo especificado por la política de seguridad.

El comando sudo -l lista los comandos que el usuario está autorizado a ejecutar en el host actual, o los comandos permitidos en un host especificado.

Vamos a verificar los privilegios sudo del usuario actual (labex). Abre tu terminal si no está abierta.

Escribe el siguiente comando y presiona Enter:

sudo -l

Deberías ver una salida similar a esta:

Matching Defaults entries for labex on ...:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User labex may run the following commands on ...:
    (ALL : ALL) NOPASSWD: ALL

Esta salida te indica que el usuario labex puede ejecutar TODOS los comandos como TODOS los usuarios (ALL : ALL) sin necesidad de una contraseña (NOPASSWD: ALL). Esto confirma que tu usuario labex tiene privilegios sudo completos sin necesidad de una contraseña.

Comprender sudo es crucial para gestionar permisos y ejecutar tareas administrativas en Linux.

Haz clic en Continuar para pasar al siguiente paso.

Verificar el archivo sudoers con cat /etc/sudoers

En este paso, examinarás el archivo /etc/sudoers, que es el archivo de configuración principal de sudo. Este archivo determina qué usuarios o grupos pueden ejecutar qué comandos como qué usuarios.

Importante: Editar directamente el archivo /etc/sudoers puede ser peligroso y puede bloquearte del sistema si se hace incorrectamente. Generalmente se recomienda utilizar el comando visudo para editar este archivo, ya que proporciona una comprobación de sintaxis. Sin embargo, para este paso, simplemente veremos el contenido del archivo utilizando el comando cat para entender su estructura.

Dado que /etc/sudoers es un archivo del sistema, necesitas privilegios sudo para leerlo.

Escribe el siguiente comando en tu terminal y presiona Enter:

sudo cat /etc/sudoers

Verás el contenido del archivo /etc/sudoers. Busca líneas que definan permisos de usuario o grupo. Puedes ver líneas similares a estas (los comentarios comienzan con #):

#
## This file MUST be edited with the 'visudo' command as root.
#
## Please consider adding local content in /etc/sudoers.d/ instead of
## directly modifying this file.
#
## See the man page for details on how to write a sudoers file.
#

Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

## Host alias specification

## User alias specification

## Cmnd alias specification

## User privilege specification
root	ALL=(ALL:ALL) ALL

## Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

## See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

La línea %sudo ALL=(ALL:ALL) ALL es particularmente importante. Significa que cualquier usuario que sea miembro del grupo sudo (%sudo) puede ejecutar comandos (ALL) como cualquier usuario (ALL) y cualquier grupo (ALL) en cualquier host (ALL). Esta es una forma común de otorgar privilegios administrativos a los usuarios en sistemas basados en Debian, como Ubuntu.

Al ver este archivo, obtienes una idea de cómo se configuran los permisos de sudo en el sistema.

Haz clic en Continuar para pasar al siguiente paso.

Verificar el grupo sudo con el comando groups

En el paso anterior, viste en el archivo /etc/sudoers que los miembros del grupo sudo tienen privilegios sudo completos. En este paso, verificarás que el usuario labex es realmente un miembro del grupo sudo utilizando el comando groups.

El comando groups muestra los nombres de los grupos primarios y secundarios para cada nombre de usuario dado, o para el proceso actual si no se proporciona ningún nombre de usuario.

Escribe el siguiente comando en tu terminal y presiona Enter:

groups

Deberías ver una salida similar a esta, que enumera los grupos a los que pertenece el usuario labex:

labex sudo ssl-cert public

Esta salida muestra que labex es miembro de los grupos labex, sudo, ssl-cert y public. La presencia de sudo en la lista confirma que el usuario labex es parte del grupo al que se le otorgan privilegios sudo según el archivo /etc/sudoers.

Como alternativa, puedes especificar el nombre de usuario con el comando groups:

groups labex

La salida será la misma:

labex : labex sudo ssl-cert public

Este paso refuerza la conexión entre la pertenencia a un grupo y los privilegios sudo configurados en el sistema.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar si un usuario tiene acceso sudo en Linux. Comenzaste utilizando el comando sudo -l para enumerar los comandos que el usuario actual está autorizado a ejecutar con privilegios sudo, lo que confirmó que el usuario labex tiene acceso sudo completo sin contraseña.

Luego exploraste el archivo /etc/sudoers utilizando el comando cat para entender su función en la configuración de los permisos sudo, aunque se enfatizó que visudo es la herramienta recomendada para editar este archivo. Finalmente, normalmente se verifica si el usuario es parte del grupo sudo utilizando el comando groups, ya que la pertenencia a un grupo es una forma común de otorgar acceso sudo.