El comando su permite iniciar una shell con la identidad de otra cuenta de Linux. Se usa para cambiar de usuario durante una sesión o para ejecutar una orden puntual con otra identidad. El cambio solo funciona si la cuenta existe y la política de autenticación del sistema autoriza el acceso.
La diferencia importante está en el entorno: su ana cambia de usuario y abre una shell que puede conservar parte del entorno actual; su – ana inicia una sesión de login y carga el entorno de ana. Esta guía se centra en la implementación habitual de util-linux en Linux; otras plataformas pueden ofrecer opciones distintas.
👉 Y recuerda, si quieres aprender más de Linux, visita el curso de Linux gratis.
Para consultar otras utilidades, visita la guía de comandos Linux por categorías.
Sintaxis del comando su
La forma general permite indicar opciones y, de manera opcional, la cuenta de destino. Si omites el nombre de usuario, su intenta abrir una shell como root.
su [opciones] [usuario]Qué significan sus argumentos
- opciones: modifican el tipo de shell, el entorno o si se ejecuta una orden puntual.
- usuario: cuenta de destino. Si se omite, el destino predeterminado es root.
En muchas distribuciones, su solicita la contraseña de la cuenta de destino. Por eso, intentar cambiar a root puede fallar si esa cuenta está bloqueada o no tiene una contraseña utilizable. En equipos configurados para administrar mediante sudo, sudo -i suele ser la alternativa prevista.
Opciones habituales
| Comando | Qué ocurre | Autenticación y nota |
|---|---|---|
| su | Intenta abrir una shell como root sin iniciar una sesión de login. | Suele pedir la contraseña de root; falla si la cuenta está bloqueada o la política lo impide. |
| su ana | Cambia a ana y abre una shell que puede conservar parte del entorno actual. | Suele pedir la contraseña de ana, según PAM. |
| su – ana o su -l ana | Inicia una shell de login y prepara el entorno de ana. | La cuenta debe existir y la política debe permitir el cambio. |
| su – | Abre una shell de login como root. | Suele pedir la contraseña de root. |
| su -c «id -un» ana | Ejecuta una orden como ana y vuelve a la shell original al terminar. | Útil para una tarea puntual; la orden se pasa a la shell de destino. |
| su -s /bin/bash ana | Solicita Bash en vez de la shell configurada para ana. | Requiere que Bash esté instalado y permitido. |
| su -p ana | Intenta conservar variables del entorno actual. | Opción especializada; heredarlas puede alterar el comportamiento de procesos. |
| sudo -i | Abre una shell de login como root a través de sudo. | Usa las credenciales y permisos sudo del usuario actual. |
Las opciones disponibles dependen de la implementación y de la configuración del sistema. En particular, conservar el entorno con -p no es lo mismo que iniciar una sesión de login; para la mayoría de los cambios interactivos, su – usuario es más predecible.
Cambiar a otro usuario
Para abrir una sesión de login como ana, ejecuta:
su - anaLa autenticación se valida contra la cuenta de destino. Una vez dentro, comprueba quién eres, qué directorio tienes como actual y cuál es tu HOME:
whoami
pwd
printf '%s\n' "$HOME"Los resultados deberían corresponder a ana. Escribe exit para cerrar esa shell y volver a la sesión original. El guion no eleva privilegios por sí solo: simplemente solicita un entorno de login para la cuenta indicada.
Ejecutar una sola orden como otro usuario
La opción -c pasa una orden a la shell del usuario de destino. Usa comillas cuando la orden tenga espacios o argumentos:
su -c "id -un" anaLa salida esperada es ana. Al terminar la orden, su devuelve el control a tu shell original. Si quieres ejecutar una orden como root en un sistema con sudo, utiliza la política administrativa de ese sistema en lugar de abrir una shell privilegiada innecesaria.
Autenticación y acceso a root
La autenticación depende de PAM y de la configuración de la distribución, por lo que la tabla resume los casos habituales. En Ubuntu y otros sistemas donde root está bloqueado por defecto, su – suele fallar y se administra normalmente con sudo -i.
Errores comunes al utilizar su
| Mensaje o síntoma | Causa probable y comprobación |
|---|---|
| Authentication failure | La contraseña de destino es incorrecta, la cuenta está bloqueada o PAM no permite el cambio. |
| User does not exist | Revisa el nombre con getent passwd usuario; su no crea cuentas. |
| Cambia de usuario pero conserva rutas o variables | Se usó su usuario en vez de su – usuario; inicia una shell de login si necesitas el entorno completo. |
| La orden no encuentra un ejecutable | El PATH puede ser distinto en la shell de destino. Usa la ruta absoluta o una shell de login cuando proceda. |
No uses su -p como arreglo automático: las variables heredadas pueden cambiar qué ejecutables se encuentran o pasar configuración inesperada a procesos privilegiados. Si una orden necesita privilegios, comprende primero con qué usuario se ejecuta y qué entorno recibe.
Ejemplo en video
El video muestra el cambio de usuario y los ejemplos de uso de su en Linux:
De este modo, podrás ver de forma práctica algunos de los ejemplos explicados en el artículo:
La regla práctica es elegir según el resultado que necesitas: su – usuario para una sesión de login con otra cuenta, su -c para una orden puntual y sudo -i cuando la administración del sistema se gestiona mediante sudo. Consulta el manual de su de util-linux para las opciones específicas de tu versión.

