Comando su
El comando su (substitute user o switch user) es una herramienta estándar de Linux y sistemas Unix utilizada para cambiar la identidad de usuario actual durante una sesión de terminal. Permite iniciar una nueva sesión de intérprete de comandos (shell) con los privilegios de otro usuario, siendo el uso más común el acceso temporal a la cuenta de superusuario (root) para tareas de administración.
| Categoría | Usuarios y permisos |
|---|---|
| Disponible en | Linux (util-linux) / Unix |
| Equivalente en Windows | runas, inicio de sesión alternativo |
| Sustituye a | No tiene un sustituto directo, aunque en administración moderna suele complementarse o preferirse sudo. |
| ¿Requiere permisos de administrador? | No para cambiar a un usuario normal (si se conoce su contraseña); sí para cambiar a root (requiere conocer la contraseña de root). |
¿Qué significa su nombre?
SU procede originalmente de las siglas de Substitute User (Sustituir Usuario), aunque en la práctica también se interpreta comúnmente como Switch User (Cambiar de Usuario).
Es un comando histórico de los sistemas multiusuario que permite saltar de una cuenta de usuario restringida a otra con mayores o diferentes privilegios sin necesidad de cerrar la sesión actual y volver a iniciarla en el sistema.
¿Para qué sirve?
El comando su sirve para cambiar de contexto de usuario en caliente dentro de la misma terminal. Al ejecutarlo sin argumentos, por defecto intenta cambiar al usuario superusuario (root), solicitando su contraseña correspondiente.
Es fundamental en la administración de sistemas para realizar tareas de mantenimiento que exigen privilegios elevados sin comprometer la seguridad de mantener una sesión gráfica o remota abierta permanentemente como administrador.
Sintaxis
su [opciones] [usuario]
Las opciones más habituales son:
| Opción | Descripción |
|---|---|
- o -l o --login |
Inicia una sesión de login completa, cargando las variables de entorno y el directorio personal del usuario destino. |
-c [comando] |
Ejecuta un único comando con los privilegios del usuario indicado y regresa inmediatamente a la sesión original. |
Comandos más utilizados
| Comando | Descripción |
|---|---|
su |
Cambia al usuario root conservando el entorno actual (no recomendado para administración completa). |
su - |
Cambia al usuario root cargando completamente su entorno de trabajo y variables de sesión. |
su nombre_usuario |
Cambia a otro usuario normal del sistema manteniendo el entorno actual. |
su - nombre_usuario -c "comando" |
Ejecuta un comando puntual como otro usuario y vuelve a la cuenta original. |
Equivalencia con otros sistemas
| Acción | Linux antiguo | Linux actual | Windows |
|---|---|---|---|
| Cambiar de usuario / Root | su |
su / sudo -i |
runas /user:Administrator cmd |
| Ejecutar comando como otro usuario | su -c |
su -c / sudo -u |
runas /user:usuario "comando" |
| Ver usuario actual | whoami |
whoami |
whoami |
Ejemplos
Cambiar al usuario root cargando su entorno completo (sesión de login)
su -
Cambiar a un usuario específico del sistema (ej. profesor) manteniendo el entorno
su profesor
Ejecutar un comando puntual como root sin abrir una sesión interactiva
su -c "apt update"
Ejemplo de salida
Contraseña:
root@servidor:~#
¿Cómo interpretar la salida?
- Contraseña: solicitud de autenticación (los caracteres no se muestran en pantalla por seguridad).
- root: indica que ahora la terminal opera bajo la cuenta del superusuario.
- @servidor: nombre de la máquina o host actual.
- ~: directorio actual (en el caso de root con
su -, apunta directamente a/root). - #: símbolo característico del prompt que indica privilegios de administrador (frente al
$de usuario normal).
Errores habituales
- Olvidar el guion (
su -en lugar desu), lo que provoca que no se carguen las rutas del sistema (PATH) ni las variables de entorno de root, generando errores al buscar determinados ejecutables de administración. - Introducir la contraseña del usuario actual en lugar de la contraseña del usuario destino (root) al que se intenta acceder.
Conceptos relacionados
- Superusuario (Root)
- Privilegios
- Variables de entorno
- Sesión de login
- Autenticación
Comandos relacionados
sudowhoamipasswdexitsu -l
Curiosidades
Aunque su es el comando clásico de Unix para cambiar de identidad, en la mayoría de distribuciones modernas de Linux se desaconseja compartir la contraseña de root entre los administradores. En su lugar, se prefiere utilizar sudo, que permite auditar qué comandos ejecuta cada usuario de manera individual sin necesidad de conocer la clave de root.
Prácticas propuestas
- Ejecuta el comando
whoamipara comprobar con qué usuario estás operando en este momento. - Prueba a ejecutar
susin guion y escribe la variable de entorno conecho $PATH. A continuación, sal conexit, ejecutasu -y vuelve a comprobarecho $PATH. ¿Qué diferencias observas en las rutas? - Utiliza el comando
su -c "whoami"para comprobar qué identidad se devuelve al ejecutar una orden puntual sin cambiar de sesión de forma interactiva. - Cierra la sesión de superusuario recién abierta escribiendo
exito pulsando las teclas Ctrl + D para regresar a tu usuario habitual. - Investiga qué ocurre si intentas cambiar a un usuario que no existe en el sistema operativo.
- Si dispones de un entorno Windows, compara el comportamiento de
sucon la herramienta gráfica o el comandorunaspara ejecutar aplicaciones con privilegios elevados.
Consejo: Utiliza siempre su - (con el guion) cuando necesites administrar el sistema como root, ya que garantiza que las rutas de los comandos de administración estén correctamente cargadas en el entorno.