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
:
su
Para 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?
su
sin guion: Cambia al usuario especificado (oroot
) pero mantiene el entorno del usuario actual (variables como$HOME
,$PATH
, etc.). Por ejemplo:
su adictosalinux
Cambia 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 - adictosalinux
Esto 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 update
sudo
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/sudoers
permite definir qué comandos puede ejecutar cada usuario o grupo, limitando el acceso. - Auditoría: Los comandos ejecutados con
sudo
se registran (en/var/log/auth.log
o similar), lo que facilita el seguimiento de acciones administrativas. - Seguridad: No requiere conocer la contraseña de
root
, y el archivo/etc/sudoers
puede configurarse para no pedir contraseña en ciertos casos (NOPASSWD
).
Ejemplo práctico:
Para reiniciar un servicio como Apache:
sudo systemctl restart apache2
Diferencias 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 adictosalinux
Verifica los miembros del grupo sudo
:
getent group sudo
- Editando
/etc/sudoers
:
Usa el comandovisudo
para editar el archivo/etc/sudoers
de forma segura (evita errores de sintaxis):
sudo visudo
Agrega la siguiente línea para otorgar permisos completos al usuario adictosalinux
:
adictosalinux ALL=(ALL:ALL) ALL
Guarda 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
root
está 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 root
Luego, puedes usarsu -
para cambiar aroot
.
- La cuenta
- Otras distribuciones (Fedora, Arch Linux, etc.):
- Suelen crear tanto una cuenta
root
como un usuario normal durante la instalación. su
ysudo
están disponibles, pero el uso desudo
sigue 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 root
Ingresa y confirma una contraseña para root
. Luego, verifica que puedes cambiar a root
:
su -
Advertencia: Habilitar la cuenta
root
no 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
: Usasudo
para tareas administrativas específicas, ya que es más seguro y permite un control granular. - Minimiza el uso de
su
: Evita cambiar aroot
consu
a menos que sea estrictamente necesario, ya que otorga acceso completo al sistema. - Configura
/etc/sudoers
cuidadosamente: Usavisudo
para 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.log
o/var/log/secure
para 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.