- 1 1. Introducción: ¿Qué es sudo?
- 2 2. Uso Básico del Comando sudo
- 3 3. El archivo sudoers y el control de acceso
- 4 4. Uso avanzado de sudo
- 5 5. Seguridad y Mejores Prácticas
- 6 6. Errores Comunes y Solución de Problemas
- 7 7. Preguntas Frecuentes
- 7.1 P1. ¿Cuál es la diferencia entre sudo y su?
- 7.2 P2. ¿Se requiere la contraseña de root para sudo?
- 7.3 P3. ¿Dónde se almacenan los registros de sudo?
- 7.4 P4. Rompí el archivo sudoers. ¿Qué debo hacer?
- 7.5 P5. ¿Puedo obtener privilegios de root sin sudo?
- 7.6 P6. ¿Es seguro ejecutar aplicaciones GUI con sudo?
- 8 8. Resumen
1. Introducción: ¿Qué es sudo?
El Significado Básico y el Rol de sudo
En sistemas Linux y similares a Unix, sudo es uno de los comandos más importantes.
El término sudo significa “superuser do”, y es una herramienta que permite a los usuarios ejecutar comandos temporalmente con privilegios administrativos (root).
Normalmente, los usuarios regulares no están autorizados para realizar operaciones que afecten todo el sistema, como instalar paquetes o modificar configuraciones del sistema. Sin embargo, utilizando el comando sudo, estas operaciones privilegiadas se pueden ejecutar de manera controlada y limitada.
Por ejemplo, el siguiente comando ejecuta apt con privilegios de root:
sudo apt update
De esta manera, sudo juega un rol crítico como un mecanismo seguro para usar privilegios administrativos, equilibrando tanto la seguridad del sistema como la usabilidad.
La Diferencia Entre sudo y su
Otro comando con un propósito similar a sudo es su, pero hay diferencias claras entre los dos.
susignifica “substitute user” y se usa para cambiar completamente a otro usuario (típicamente root) . Cuando usassu, operas como ese usuario durante toda la sesión.- Por otro lado,
sudote permite permanecer como tu usuario actual mientras tomas prestados temporalmente privilegios administrativos para un solo comando .
En resumen, su cambia de usuario a nivel de sesión, mientras que sudo eleva privilegios a nivel de comando. Desde una perspectiva de seguridad, sudo facilita el seguimiento del historial de comandos, por lo que se ha convertido en el enfoque estándar en distribuciones modernas de Linux.
Distribuciones de Linux Que Comúnmente Usan sudo
El comando sudo está habilitado por defecto en muchas distribuciones de Linux, especialmente las siguientes:
- Sistemas basados en Ubuntu (Ubuntu, Linux Mint, etc.) → La cuenta root está deshabilitada por defecto, y todas las tareas administrativas se realizan vía sudo.
- Sistemas basados en Debian → sudo puede necesitar ser habilitado manualmente, pero a menudo se recomienda como una mejor práctica de seguridad.
- Sistemas basados en Fedora, CentOS y Red Hat → El acceso directo a root es posible, pero usar sudo sigue siendo común.
En particular en Ubuntu, la cuenta root está deshabilitada por defecto, y todas las operaciones administrativas deben realizarse usando sudo. Por esta razón, entender sudo es esencial para los usuarios de Ubuntu.
¿Por Qué la Gente Busca “sudo sudo”?
La palabra clave “sudo sudo” puede parecer redundante a primera vista, pero a menudo se busca por las siguientes razones:
- Principiantes tratando de enfatizar o entender mejor el significado y uso de
sudo - Usuarios encontrando errores como
sudo: sudo: command not found - Confusión después de ver ejemplos donde
sudose usa equivocadamente dos veces en scripts o pipelines
Teniendo en mente estas intenciones de búsqueda, las siguientes secciones explicarán el uso correcto, métodos de configuración y técnicas de resolución de problemas para sudo en detalle.
2. Uso Básico del Comando sudo
Sintaxis Básica de sudo
La sintaxis básica de sudo es muy simple:
sudo [options] command
Por ejemplo, para actualizar la información de paquetes del sistema:
sudo apt update
Esto significa que el comando apt update se ejecuta con privilegios de root.
Autenticación de Contraseña y Almacenamiento en Caché de Credenciales
Cuando usas sudo por primera vez, o después de un cierto tiempo, el sistema te pedirá que ingreses tu contraseña de usuario. Este mecanismo de seguridad ayuda a prevenir el mal uso accidental o acceso no autorizado.
Después de ingresar tu contraseña, se almacena en caché por un período fijo (5 minutos por defecto en Ubuntu). Durante este tiempo, comandos subsiguientes de sudo no requieren volver a ingresar la contraseña. Este tiempo de espera se puede ajustar en el archivo sudoers.
Opciones Comúnmente Usadas
sudo proporciona muchas opciones para hacer las operaciones más flexibles y convenientes. A continuación, se muestran algunas de las más comúnmente usadas.
-u (Ejecutar como Otro Usuario)
Por defecto, los comandos se ejecutan como root, pero con la opción -u puedes ejecutar un comando como cualquier usuario especificado.
sudo -u www-data whoami
La salida será www-data, confirmando que el comando se ejecutó como el usuario www-data.
-s (Start a Shell)
El siguiente comando abre una shell temporal con privilegios de root:
sudo -s
Ten cuidado al trabajar en una shell de root.
-i (Simulate a Full Root Login)
Esta opción crea un entorno de root más completo. Las variables de entorno se cambian a las de root, lo que resulta en una sesión de root similar a iniciar sesión directamente como root.
sudo -i
-l (List Allowed Commands)
Puedes comprobar qué comandos tienes permiso de ejecutar con sudo:
sudo -l
Esto es útil para verificar la configuración de permisos y las restricciones de seguridad.
Puntos importantes para principiantes
- Debes incluir un espacio después de
sudo. Por ejemplo,sudoaptes incorrecto. - Al ejecutar varios comandos, debes encerrar todo el comando entre comillas o separarlos con punto y coma.
- Ejecutar aplicaciones GUI con
sudopuede dañar archivos de configuración, por lo que generalmente se debe evitar (por ejemplo,sudo gedit).
3. El archivo sudoers y el control de acceso
¿Qué es el archivo sudoers?
El archivo de configuración que controla el comportamiento del comando sudo es /etc/sudoers. Este archivo define quién puede ejecutar qué comandos usando sudo.
Por ejemplo, permite un control de acceso granular, como permitir a un usuario ejecutar solo comandos específicos con sudo.
Esta flexibilidad hace posible seguir el principio de menor privilegio, otorgando a los usuarios solo los permisos mínimos que necesitan.
Edición segura con el comando visudo
Nunca deberías editar /etc/sudoers directamente con un editor de texto.
Un error de sintaxis en este archivo puede desactivar sudo por completo, dificultando la recuperación del sistema. Por esta razón, se recomienda encarecidamente editarlo usando el comando visudo.
sudo visudo
visudo realiza una comprobación de sintaxis antes de guardar, permitiendo cambios de configuración seguros.
Sintaxis básica y ejemplos de configuración
La sintaxis básica del archivo sudoers es la siguiente:
username hostname = (run-as user) allowed commands
Ejemplo:
alice ALL=(ALL:ALL) ALL
Esta configuración permite al usuario alice ejecutar todos los comandos como cualquier usuario en todos los hosts.
Un ejemplo más restringido:
bob ALL=(ALL) /usr/bin/systemctl restart nginx
Esto permite al usuario bob ejecutar solo el comando de reinicio de nginx con sudo.
Control basado en grupos: el grupo sudo
En muchas distribuciones, como Ubuntu, los usuarios que pertenecen al grupo sudo pueden usar sudo.
%sudo ALL=(ALL:ALL) ALL
Usar %sudo habilita la gestión de permisos basada en grupos.
Para añadir un usuario al grupo sudo:
sudo usermod -aG sudo username
La opción NOPASSWD y consideraciones de seguridad
Si introducir la contraseña cada vez es incómodo, puedes usar la opción NOPASSWD para omitir la autenticación con contraseña.
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
Esto permite a alice reiniciar nginx sin introducir una contraseña.
Sin embargo, esto incrementa el riesgo de seguridad, por lo que es fundamental limitar su uso solo a comandos específicos. No se recomienda usar NOPASSWD con ALL.
4. Uso avanzado de sudo
Ejecutar comandos como un usuario específico
Aunque sudo normalmente ejecuta comandos como root, también puede ejecutar comandos como otros usuarios.
Por ejemplo, para ejecutar un comando como el usuario www-data:
sudo -u www-data whoami
La salida será www-data.
Esto es útil para verificar permisos y diferencias de entorno entre usuarios.
Usar sudo con redirección y tuberías
Un punto de confusión frecuente para principiantes es combinar sudo con redirección (>) o tuberías (|).
El siguiente comando parece correcto pero no funciona como se espera:
sudo echo "test" > /etc/test.conf
Aunque echo se ejecuta con sudo, la redirección es manejada por el shell como un usuario normal.
El enfoque correcto es usar tee:
echo "test" | sudo tee /etc/test.conf
Uso de sudo en Scripts
Cuando los scripts requieren privilegios administrativos, agrega sudo solo a los comandos que lo necesiten.
Ejemplo (install.sh):
#!/bin/bash
echo "Installing package..."
sudo apt install -y nginx
Otro patrón común es verificar si el script se ejecuta como root:
if [ "$EUID" -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
Atajos útiles de sudo
sudo !!Vuelve a ejecutar el comando anterior con sudo.apt update sudo !!
sudo -kLimpia las credenciales en caché de sudo.sudo -vExtiende la sesión actual de sudo.
5. Seguridad y Mejores Prácticas
Sigue el Principio de Privilegio Mínimo
El objetivo principal de usar sudo es operar el sistema con los privilegios mínimos necesarios.
- Permitir solo comandos específicos a través de sudo
- Limitar el uso de
NOPASSWD - Gestionar administradores a través de grupos
Registro y Auditoría
sudo registra todos los comandos ejecutados.
/var/log/auth.log(Ubuntu/Debian)journalctl(sistemas basados en systemd)grep 'sudo' /var/log/auth.logjournalctl _COMM=sudo

Vulnerabilidad real de sudo (CVE-2021-3156)
Aunque sudo es altamente confiable, se han descubierto vulnerabilidades graves en el pasado.
Un ejemplo notable es CVE-2021-3156 (Baron Samedit), que permitió a usuarios locales obtener privilegios de root bajo condiciones específicas.
- Mantén sudo actualizado
- Monitorea las alertas de seguridad
Alternativa a sudo: doas
Algunos entornos enfocados en seguridad usan doas como una alternativa más simple a sudo.
doas apt update
Ejemplo de configuración:
permit nopass :wheel
6. Errores Comunes y Solución de Problemas
Usuario no en el archivo sudoers
username is not in the sudoers file. This incident will be reported.
Esto significa que el usuario carece de privilegios de sudo.
sudo usermod -aG sudo username
Permiso Denegado con Redirección
echo "test" | sudo tee /etc/test.conf
Archivo sudoers Dañado
pkexec visudo
sudo: comando no encontrado
apt update
apt install sudo
7. Preguntas Frecuentes
P1. ¿Cuál es la diferencia entre sudo y su?
R: sudo eleva comandos individuales, mientras que su cambia de usuario completamente.
P2. ¿Se requiere la contraseña de root para sudo?
R: No. Ingresas tu propia contraseña de usuario.
P3. ¿Dónde se almacenan los registros de sudo?
/var/log/auth.log/var/log/securejournalctl _COMM=sudo
P4. Rompí el archivo sudoers. ¿Qué debo hacer?
Usa el modo de recuperación o pkexec visudo.
P5. ¿Puedo obtener privilegios de root sin sudo?
Sí, pero no se recomienda.
P6. ¿Es seguro ejecutar aplicaciones GUI con sudo?
No. Usa pkexec en su lugar.
8. Resumen
Entiende sudo Correctamente
sudo es un mecanismo crítico de control de acceso, no solo un comando de conveniencia.
El Uso Adecuado Previene Problemas
- Usa privilegio mínimo
- Edita con
visudo - Revisa los registros
Elige el Estilo Operacional Correcto
Selecciona herramientas como sudo o doas basadas en tu política de seguridad.
Nota Final
Entender sudo es un paso fundamental hacia el dominio de la administración de sistemas Linux.


