Comando su

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 de su), 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

  • sudo
  • whoami
  • passwd
  • exit
  • su -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

  1. Ejecuta el comando whoami para comprobar con qué usuario estás operando en este momento.
  2. Prueba a ejecutar su sin guion y escribe la variable de entorno con echo $PATH. A continuación, sal con exit, ejecuta su - y vuelve a comprobar echo $PATH. ¿Qué diferencias observas en las rutas?
  3. 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.
  4. Cierra la sesión de superusuario recién abierta escribiendo exit o pulsando las teclas Ctrl + D para regresar a tu usuario habitual.
  5. Investiga qué ocurre si intentas cambiar a un usuario que no existe en el sistema operativo.
  6. Si dispones de un entorno Windows, compara el comportamiento de su con la herramienta gráfica o el comando runas para 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.