20/04/2016
En el vasto universo de la línea de comandos de Linux, existen herramientas tan poderosas que su uso incorrecto puede llevar a consecuencias catastróficas. Una de estas herramientas, fundamental para cualquier administrador de sistemas o usuario entusiasta, es el comando su. A simple vista, parece inofensivo, una simple abreviatura. Sin embargo, encierra la llave para convertirse en cualquier usuario del sistema, incluido el todopoderoso superusuario. Pero, ¿qué ocurre exactamente cuando, en la prisa o el desconocimiento, simplemente tecleamos 'su' y presionamos Enter, sin especificar a quién queremos suplantar? Este artículo desentrañará ese comportamiento por defecto y explorará las profundidades de este comando esencial.

¿Qué es Realmente el Comando 'su'?
Antes de sumergirnos en el escenario principal, es crucial entender la función de 'su'. Su nombre proviene de "Substitute User" (Sustituir Usuario) o, como otros prefieren, "Switch User" (Cambiar Usuario). Su propósito es exactamente ese: permitirte cambiar tu identidad de usuario actual por otra dentro de la misma sesión de terminal, sin necesidad de cerrar sesión y volver a entrar. Es una herramienta de administración indispensable para ejecutar tareas que requieren privilegios específicos de otro usuario o, más comúnmente, para obtener permisos elevados.
El Comportamiento por Defecto: El Camino Directo a 'root'
Aquí llegamos al corazón de la cuestión. Cuando ejecutas el comando su sin ningún argumento adicional, el sistema operativo no se queda perplejo. Por el contrario, tiene una acción predeterminada muy clara y significativa: intenta convertirte en el superusuario, también conocido como 'root'.
Inmediatamente después de presionar Enter, la terminal te presentará una solicitud simple pero imponente:
Password:
Este es un punto crítico que a menudo confunde a los principiantes. La contraseña que se te solicita no es la tuya, la del usuario con el que estás actualmente logueado. El sistema está pidiendo la contraseña del usuario al que intentas acceder, que en este caso por defecto es 'root'. Por lo tanto, debes introducir la contraseña de 'root' para proceder. Si la autenticación es exitosa, tu prompt (el indicador de la línea de comandos) probablemente cambiará, a menudo de un '$' a un '#', señalando que ahora posees los privilegios más altos del sistema. Has logrado convertirte en el superusuario.
'su' vs. 'su -': Una Diferencia que lo Cambia Todo
Saber que 'su' por defecto te convierte en 'root' es solo la mitad de la historia. Existe una variación sutil pero increíblemente importante: 'su -' (también escrito como 'su -l' o 'su --login'). La diferencia entre ambos puede afectar drásticamente tu sesión y el comportamiento de los comandos que ejecutes.
- su: Al usar el comando simple, te conviertes en 'root', pero mantienes gran parte del entorno de tu usuario original. Esto incluye variables como
$HOME,$PATHy otras. Esto puede ser problemático, ya que podrías intentar ejecutar un comando de administrador que no se encuentra en el PATH de tu usuario normal, o podrías crear archivos de configuración en el directorio de tu usuario en lugar del de 'root'. - su -: Este comando simula un inicio de sesión completo como el usuario 'root'. No solo te cambia el usuario, sino que carga todo el entorno de 'root' desde cero. Tu directorio de trabajo cambiará a
/root, se cargará el$PATHcorrecto para los binarios del sistema y se leerán todos los archivos de configuración de inicio de sesión de 'root' (como.bashrco.profile). Esta es la forma recomendada y más segura de convertirse en superusuario, ya que garantiza un entorno limpio y predecible.
Tabla Comparativa: su vs. su -
| Característica | su | su - |
|---|---|---|
| Usuario Efectivo | root | root |
| Directorio de Trabajo | Permanece en el directorio del usuario original | Cambia a /root |
| Variables de Entorno ($PATH, $HOME) | Se heredan parcialmente del usuario original | Se cargan las del usuario root |
| Archivos de Inicio Leídos | No se leen los archivos de login de root | Se leen los archivos de login de root (.bash_profile, etc.) |
| Uso Recomendado | Para tareas muy rápidas que no dependen del entorno. Generalmente desaconsejado. | Práctica recomendada para la administración del sistema. |
La Alternativa Moderna y Segura: 'sudo'
En muchas distribuciones modernas de Linux (como Ubuntu y sus derivadas), el uso directo de 'su' para convertirse en 'root' está, de hecho, desaconsejado o incluso deshabilitado por defecto. La cuenta de 'root' puede venir bloqueada, lo que significa que no tiene una contraseña establecida y no puedes iniciar sesión en ella directamente. ¿La razón? La seguridad. Operar constantemente en una shell de 'root' es peligroso; un simple error tipográfico en un comando puede destruir el sistema.
Aquí es donde entra en juego sudo ("Superuser Do"). A diferencia de 'su', que te da una shell de superusuario completa y persistente, 'sudo' te permite ejecutar un único comando con privilegios de 'root'.

Por ejemplo, en lugar de:
su -[ingresar contraseña de root]apt updateexit
Simplemente ejecutarías:
sudo apt update
Al ejecutar este comando, el sistema te pedirá tu propia contraseña de usuario, no la de 'root'. Esto ofrece ventajas de seguridad inmensas:
- No se comparte la contraseña de root: Múltiples administradores pueden tener permisos de 'sudo' sin necesidad de conocer la contraseña maestra del sistema.
- Privilegio mínimo: Solo se elevan los privilegios para el comando específico y por un tiempo limitado.
- Auditoría y registro: Cada uso de 'sudo' se registra en los logs del sistema, permitiendo saber qué usuario ejecutó qué comando y cuándo.
Preguntas Frecuentes (FAQ)
P: ¿Qué pasa si ingreso mi propia contraseña en el prompt de 'su'?
R: Recibirás un mensaje de error, típicamente "su: Authentication failure" o "Fallo de autenticación". El comando requiere la contraseña del usuario de destino (root, en este caso), no la tuya.
P: Una vez que soy 'root' con 'su', ¿cómo vuelvo a mi usuario normal?
R: Es muy sencillo. Simplemente escribe el comando exit y presiona Enter. Esto cerrará la shell de 'root' y te devolverá a la sesión de tu usuario original.
P: ¿Puedo usar 'su' para cambiar a otro usuario que no sea 'root'?
R: ¡Por supuesto! Esa es su función principal. Simplemente especifica el nombre de usuario después del comando. Por ejemplo, para convertirte en el usuario 'juan', escribirías su juan. El sistema te pedirá entonces la contraseña del usuario 'juan'.
P: ¿Por qué en mi sistema (Ubuntu/Mint) el comando 'su' no funciona para ser root?
R: Como se mencionó, estas distribuciones bloquean la cuenta de 'root' por defecto por seguridad. Para habilitarla, necesitarías establecerle una contraseña primero usando sudo passwd root, aunque la práctica recomendada es seguir utilizando 'sudo' para todas las tareas administrativas.
Conclusión: Un Poder que Debe Usarse con Sabiduría
El comportamiento por defecto del comando 'su' es una puerta de entrada directa al control total de tu sistema operativo Linux. Al ejecutarlo sin argumentos, declaras tu intención de convertirte en 'root', el superusuario. Ahora sabes que el sistema te pedirá la contraseña de 'root' y que la forma correcta y segura de hacerlo, si es necesario, es con 'su -' para obtener un entorno limpio. Sin embargo, también has aprendido que el ecosistema de Linux ha evolucionado, y 'sudo' se presenta como la alternativa más segura, granular y auditable para la mayoría de las tareas administrativas. Dominar estos comandos no solo te da poder sobre el sistema, sino también la responsabilidad de usarlo con conocimiento y precaución.
Si quieres conocer otros artículos parecidos a Comando 'su': ¿Qué pasa si no pones usuario? puedes visitar la categoría Tecnología.
