El comando su en Linux: cambiar de usuario en terminal

Introducción

En el mundo de Linux, la terminal es una de las herramientas más poderosas para administrar el sistema. A menudo necesitamos ejecutar acciones con los privilegios de otro usuario, ya sea para realizar tareas de mantenimiento, probar configuraciones o acceder a archivos restringidos. El comando su (switch user) permite cambiar de usuario directamente desde la línea de comandos sin cerrar la sesión actual. En este artículo exploraremos su funcionamiento, sintaxis, opciones más comunes y algunas recomendaciones de seguridad para usarlo de forma responsable.

¿Qué hace el comando su?

El comando su inicia una nueva shell bajo la identidad de otro usuario. Por defecto, si no se especifica un nombre de usuario, su cambia al usuario root. A diferencia de sudo, que ejecuta un solo comando con privilegios elevados, su abre una sesión interactiva completa, lo que permite ejecutar varios comandos sucesivamente bajo la misma identidad.

Sintaxis básica

La forma más simple es:

su [nombre_de_usuario]

Si se omite nombre_de_usuario, el sistema asume root. Tras ejecutar el comando, se solicitará la contraseña del usuario de destino. Una vez autenticado, se abrirá una nueva shell y el prompt cambiará para reflejar el nuevo usuario.

Opciones más usadas

  • -l o --login: inicia una shell de inicio de sesión, lo que significa que se leen los archivos de perfil del usuario (.profile, .bashrc, etc.) y se establece el entorno como si hubiera iniciado sesión normalmente.
  • -c comando o --command comando: ejecuta únicamente el comando especificado y luego vuelve a la shell original, sin mantener una sesión interactiva.
  • -s shell o --shell shell: indica qué shell se debe usar (por ejemplo, /bin/zsh) en lugar de la predeterminada del usuario.
  • -m, -p o --preserve-environment: conserva las variables de entorno del usuario actual en lugar de cargar el entorno del usuario destino.
  • --help y --version: muestran la ayuda y la versión del comando.

Ejemplos prácticos

    • Cambiar a root y obtener una shell de inicio de sesión:
su -l
    • Cambiar al usuario juan y ejecutar un solo comando:
su -c "ls -la /home/juan" juan
    • Iniciar una shell como juan conservando el entorno actual:
su -p juan
    • Especificar una shell diferente:
su -s /bin/zsh juan

Diferencias entre su y sudo

Aunque ambos permiten realizar acciones con privilegios de otro usuario, su comportamiento es distinto:

  • su cambia completamente de usuario y abre una nueva shell, requiriendo la contraseña del usuario de destino.
  • sudo ejecuta un solo comando con los privilegios de otro usuario (usualmente root) usando la contraseña del usuario actual, siempre que esté autorizado en el archivo /etc/sudoers.
  • En entornos donde se busca minimizar la exposición de contraseñas de root, sudo suele ser preferible porque no necesita conocer la clave de root.
  • Cuando se necesita una sesión prolongada bajo otro usuario (por ejemplo, para probar varios scripts), su resulta más cómodo.

Buenas prácticas de seguridad

  • Utiliza su -l siempre que necesites un entorno limpio y completo; esto evita que variables de entorno inesperadas influyan en la sesión.
  • Evita dejar sesiones de su abiertas en terminales sin supervisión; finalízalas con exit o Ctrl+D cuando termines.
  • Prefiere sudo para tareas puntuales y reserva su para casos donde realmente necesites una shell interactiva.
  • Revisa el archivo /etc/pam.d/su para limitar quién puede usar su hacia root (por ejemplo, mediante el grupo wheel).
  • Monitoriza los intentos de su fallidos con herramientas como auth.log o journalctl para detectar posibles ataques de fuerza bruta.
  • Si tu distribución lo permite, desactiva el acceso directo a root mediante su y obliga a usar sudo únicamente.

Conclusión

El comando su es una herramienta esencial para la administración de sistemas Linux, permitiendo cambiar de usuario de forma rápida y flexible. Conocer sus opciones y entender cuándo es más adecuado que sudo ayuda a trabajar de manera más eficiente y segura. Aplicando las buenas prácticas descritas, podrás aprovechar todo su potencial sin comprometer la integridad de tu sistema. ¡Practica en un entorno de prueba y incorpora su en tu flujo de trabajo diario!

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol