Inicio > Gestión de paquetes y sistema > sudo

Guía del comando sudo: Ejecutar comandos con privilegios de administrador

El comando sudo (abreviatura de substitute user do o superuser do) es una herramienta que permite a los usuarios normales ejecutar programas con los privilegios de otro usuario (generalmente el usuario root) en sistemas operativos Linux y Unix. Esto permite realizar tareas administrativas de manera más segura, manteniendo la seguridad del sistema en lugar de realizar todas las tareas directamente con la cuenta root. A través de esta guía, aprenderás los aspectos básicos del uso de sudo y consideraciones de seguridad importantes.

Descripción general de sudo

En un sistema Linux, el usuario root tiene todos los privilegios. Sin embargo, realizar todas las tareas como root puede ser riesgoso, ya que un error podría causar daños catastróficos al sistema. `sudo` es un mecanismo de seguridad importante que permite a los usuarios normales obtener los privilegios necesarios de administrador de manera **temporal**, minimizando los riesgos de seguridad y permitiendo la administración del sistema.

Cómo funciona sudo

sudo solicita la contraseña del usuario (no la contraseña de root) cuando se ejecuta el comando sudo, y si esta es correcta, ejecuta el comando con los privilegios de root o de otro usuario según las reglas definidas en el archivo sudoers. Una vez autenticado, el usuario puede usar sudo sin tener que volver a ingresar la contraseña durante un período de tiempo determinado (por defecto, 5 minutos).

Funciones principales de sudo

  • Refuerzo de seguridad: Reduce los riesgos de seguridad al evitar iniciar sesión innecesariamente como usuario root.
  • Rastreo de responsabilidad: Todos los comandos ejecutados a través de sudo se registran, permitiendo rastrear quién ejecutó qué comando administrativo y cuándo.
  • Control de privilegios granulares: A través del archivo sudoers, se puede controlar de manera precisa qué comandos pueden ejecutar los usuarios o grupos específicos con privilegios de root.
  • Facilitación de reingreso de contraseña: Una vez autenticado, el usuario puede usar sudo durante un período de tiempo sin necesidad de volver a ingresar la contraseña, lo que resulta conveniente.

🔑 Archivo sudoers

/etc/sudoers

Todas las configuraciones de privilegios de sudo se definen en el archivo /etc/sudoers. Este archivo es muy sensible, por lo que debe ser editado utilizando el comando visudo. visudo verifica automáticamente errores de sintaxis para evitar que la funcionalidad de sudo se rompa debido a configuraciones incorrectas.

Opciones principales del comando sudo

El comando `sudo` permite controlar la forma en que se ejecutan los comandos a través de diversas opciones, además del aumento de privilegios.

1. Uso básico

2. Opciones relacionadas con usuarios y shells

3. Opciones relacionadas con autenticación y listas

Comando generado:

Combina los comandos.

Descripción:

`sudo` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Configuración del archivo sudoers (usando visudo)

Los privilegios de `sudo` se controlan a través del archivo `/etc/sudoers`. En lugar de modificar este archivo directamente, debe ser editado de forma segura utilizando el comando `visudo`. `visudo` verifica errores de sintaxis para evitar romper la funcionalidad de `sudo`.

Editar el archivo sudoers

sudo visudo

Edita el archivo `sudoers` de forma segura con privilegios de root. El editor predeterminado puede ser `vi`.

Formato general del archivo sudoers

Los elementos del archivo sudoers se definen en el formato User Host=(RunAs) NOPASSWD: Command. La configuración más común es permitir que los usuarios pertenecientes a un grupo específico tengan privilegios de sudo para todos los comandos.

Ejemplos de configuración

A continuación se presentan ejemplos de configuraciones que se pueden ver a menudo en el archivo sudoers.

  • %sudo ALL=(ALL:ALL) ALL: Permite que todos los usuarios que pertenecen al grupo sudo ejecuten cualquier comando (ALL) con los privilegios de cualquier usuario (ALL) y grupo (ALL) desde cualquier host (ALL). (Se requiere contraseña)
  • username ALL=(ALL) NOPASSWD: /usr/bin/apt update: Permite que el usuario username ejecute el comando apt update como root sin necesidad de ingresar una contraseña.

Ejemplos de uso

Aprende a realizar tareas del sistema con privilegios de administrador a través de varios ejemplos de uso del comando `sudo`.

Actualizar paquetes del sistema

sudo apt update

El comando para actualizar la lista de paquetes del sistema requiere privilegios de administrador, por lo que se usa `sudo`.

Copiar un archivo a un directorio específico

sudo cp my_config.conf /etc/

Copia el archivo `my_config.conf` a `/etc/`, un directorio donde generalmente no se tiene permiso de escritura.

Ejecutar un comando como otro usuario

sudo -u www-data ls /var/www/html

Ejecuta el comando `ls /var/www/html` con los privilegios del usuario `www-data` (usualmente el proceso del servidor web) para probar los permisos de acceso a los archivos de ese usuario.

Cambiar a un shell de root

sudo -i

Ingresa la contraseña del usuario actual para obtener un shell completamente cambiado al entorno del usuario root. Después de completar el trabajo, puedes volver a tu usuario original ingresando `exit`.

Verificar privilegios de sudo del usuario actual

sudo -l

Verifica qué comandos puede ejecutar el usuario actualmente conectado a través de `sudo`, si se requiere contraseña, etc.



Comandos de la misma categoría