Los comandos su y sudo son herramientas esenciales en Linux para gestionar privilegios elevados, pero sus enfoques y casos de uso difieren. Aunque ambos permiten realizar tareas administrativas, su sintaxis, funcionamiento y seguridad varían. En este artículo, exploraremos sus diferencias, usos y mejores prácticas.
root y los privilegios en Linux
En sistemas tipo Unix, root (o superusuario) es una cuenta especial con un ID de usuario (UID) 0, que tiene permisos ilimitados para realizar cualquier operación en el sistema, como modificar archivos críticos, administrar procesos o cambiar configuraciones. En contraste, los usuarios normales tienen permisos restringidos y no pueden acceder a directorios del sistema (como /etc o /var) ni ejecutar ciertas tareas administrativas.
Tanto su como sudo permiten a los usuarios obtener privilegios de root, pero lo hacen de manera diferente. A continuación, detallamos sus características y diferencias clave.
su: Cambiar de usuario
El comando su (“substitute user” o “sustituir usuario“) permite cambiar a otra cuenta de usuario, generalmente root, iniciando un nuevo shell. Si no se especifica un usuario, su asume que se desea cambiar a root.
Sintaxis:
su [nombre_de_usuario]Para cambiar al usuario root:
suPara iniciar un shell con el entorno completo del usuario destino (como si fuera un inicio de sesión nuevo):
su - [nombre_de_usuario]O equivalentemente:
su --login [nombre_de_usuario]¿Cómo funciona?
susin guion: Cambia al usuario especificado (oroot) pero mantiene el entorno del usuario actual (variables como$HOME,$PATH, etc.). Por ejemplo:
su adictosalinuxCambia al usuario adictosalinux, pero el directorio de trabajo y las variables de entorno siguen siendo las del usuario original.
su -osu --login: Cambia al usuario especificado y carga su entorno completo (variables de entorno, directorio personal, etc.). Por ejemplo:
su - adictosalinuxEsto inicia un shell como si adictosalinux hubiera iniciado sesión directamente, usando su $HOME, $PATH, etc.
Nota: Para usar su, necesitas conocer la contraseña del usuario destino (como root), lo que puede ser un riesgo de seguridad si se comparte.
Riesgos de su:
Al cambiar completamente a root con su, el usuario obtiene control total del sistema. Un error (como eliminar archivos críticos con rm -rf /) puede dañar el sistema irreparablemente.
Lee también: 8 Errores Comunes que Cometen los Usuarios de Linux por Primera Vez
sudo: Ejecutar comandos con privilegios
El comando sudo (“substitute user and do” o “sustituir usuario y hacer”) permite ejecutar un comando específico con privilegios de otro usuario, normalmente root, sin cambiar de sesión. Solo los usuarios incluidos en el grupo sudoers (definido en /etc/sudoers) pueden usar sudo.
Sintaxis:
sudo [comando]Por ejemplo, para actualizar paquetes en una distribución basada en Debian:
sudo apt updatesudo solicita la contraseña del usuario actual, no la de root, lo que reduce el riesgo de compartir contraseñas sensibles.
Ventajas de sudo:
- Granularidad: Permite ejecutar solo comandos específicos con privilegios elevados, sin otorgar acceso completo al entorno de
root. - Configuración flexible: El archivo
/etc/sudoerspermite definir qué comandos puede ejecutar cada usuario o grupo, limitando el acceso. - Auditoría: Los comandos ejecutados con
sudose registran (en/var/log/auth.logo similar), lo que facilita el seguimiento de acciones administrativas. - Seguridad: No requiere conocer la contraseña de
root, y el archivo/etc/sudoerspuede configurarse para no pedir contraseña en ciertos casos (NOPASSWD).
Ejemplo práctico:
Para reiniciar un servicio como Apache:
sudo systemctl restart apache2Diferencias clave entre su y sudo

| Característica | su | sudo |
|---|---|---|
| Función | Cambia al usuario destino (o root). | Ejecuta un comando con privilegios. |
| Contraseña requerida | Contraseña del usuario destino. | Contraseña del usuario actual. |
| Entorno | Mantiene o cambia el entorno. | No cambia el entorno. |
| Seguridad | Menos seguro (acceso total a root). | Más seguro (control granular). |
| Uso recomendado | Cambiar de usuario temporalmente. | Tareas administrativas específicas. |
Agregar un usuario al grupo sudoers
Para que un usuario pueda usar sudo, debe estar en el grupo sudo o listado en /etc/sudoers. Hay dos formas principales de otorgar estos permisos:
- Usando
usermod:
Agrega un usuario al gruposudo:
sudo usermod -aG sudo adictosalinuxVerifica los miembros del grupo sudo:
getent group sudo- Editando
/etc/sudoers:
Usa el comandovisudopara editar el archivo/etc/sudoersde forma segura (evita errores de sintaxis):
sudo visudoAgrega la siguiente línea para otorgar permisos completos al usuario adictosalinux:
adictosalinux ALL=(ALL:ALL) ALLGuarda los cambios con Ctrl+X, luego Y.
Advertencia: Editar /etc/sudoers directamente sin visudo puede causar errores que bloqueen el acceso administrativo. Siempre usa visudo.
su y sudo en diferentes distribuciones de Linux
- Distribuciones basadas en Ubuntu (Ubuntu, Linux Mint, etc.):
- La cuenta
rootestá desactivada por defecto para mejorar la seguridad. - Durante la instalación, se crea un usuario normal que se agrega automáticamente al grupo
sudo. - Para habilitar
root, establece una contraseña con:sudo passwd rootLuego, puedes usarsu -para cambiar aroot.
- La cuenta
- Otras distribuciones (Fedora, Arch Linux, etc.):
- Suelen crear tanto una cuenta
rootcomo un usuario normal durante la instalación. suysudoestán disponibles, pero el uso desudosigue siendo recomendado para tareas administrativas.
- Suelen crear tanto una cuenta
Habilitar la cuenta root (si es necesario)
En distribuciones como Ubuntu, intentar cambiar a root con su puede fallar si la cuenta está desactivada. Para activarla:
sudo passwd rootIngresa y confirma una contraseña para root. Luego, verifica que puedes cambiar a root:
su -Advertencia: Habilitar la cuenta
rootno es recomendado en distribuciones como Ubuntu, ya que aumenta el riesgo de errores graves o accesos no autorizados.
Mejores prácticas y recomendaciones
- Prefiere
sudo: Usasudopara tareas administrativas específicas, ya que es más seguro y permite un control granular. - Minimiza el uso de
su: Evita cambiar arootconsua menos que sea estrictamente necesario, ya que otorga acceso completo al sistema. - Configura
/etc/sudoerscuidadosamente: Usavisudopara evitar errores y considera limitar los comandos que un usuario puede ejecutar consudo. - Protege la contraseña de
root: Si habilitas la cuentaroot, usa una contraseña fuerte y guárdala de forma segura. - Audita los comandos
sudo: Revisa los logs en/var/log/auth.logo/var/log/securepara monitorear el uso desudo.
Conclusión
su y sudo son herramientas poderosas para gestionar privilegios en Linux, pero sudo es la opción preferida en la mayoría de los casos debido a su seguridad, flexibilidad y capacidad de auditoría. Mientras que su es útil para cambiar de usuario o entorno, su uso prolongado como root puede ser arriesgado. Al entender sus diferencias y aplicar las mejores prácticas, puedes administrar tu sistema Linux de forma segura y eficiente.







¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.