El comando su se usa a menudo junto con otros comandos como sudo para acceso temporal elevado, passwd para cambiar contraseñas y whoami para verificar en qué usuario has iniciado sesión actualmente. Entender su es crucial para las tareas de administración del sistema y para los usuarios que necesitan operar en un entorno multiusuario.
Entonces, comencemos y aprendamos cómo usar efectivamente el comando su para cambiar cuentas de usuario y elevar permisos.
Sintaxis general para el comando su:
$ su [OPCIONES] [USUARIO [ARGUMENTO...]]Iniciar sesión con una cuenta de usuario diferente
su [nombre_de_usuario]Pasa el nombre de usuario al comando su, y proporcionará una sesión de inicio de sesión cuando se haya verificado la contraseña.
Ejemplo 1: Cambiar al usuario root
Si ejecutas su sin ningún nombre de usuario, tomará por defecto al usuario root. Se te pedirá que ingreses la contraseña de root.
$ su
Contraseña: [Ingresa la contraseña de root aquí]
# [Ahora estás en un shell como usuario root]Ejemplo 2: Cambiar a un usuario específico
Para cambiar a un usuario específico, puedes especificar el nombre de usuario como argumento. Por ejemplo, para cambiar a un usuario llamado mateo, harías:
$ su mateo
Contraseña: [Ingresa la contraseña de mateo aquí]
$ [Ahora estás en un shell como mateo]Ejemplo 3: Ejecutar un comando como otro usuario
También puedes ejecutar un solo comando como otro usuario sin ingresar a su shell. Por ejemplo, para ejecutar whoami como mateo:
su -c "whoami" mateo
Contraseña: [Ingresa la contraseña de mateo aquí]
mateoIniciar sesión con una cuenta de usuario diferente + ejecutar un comando
su [nombre_de_usuario] -c [comando]La opción -c te permite ejecutar un comando en particular bajo una cuenta de usuario diferente y mostrar los resultados en la sesión de inicio de sesión actual.
Ejemplo 1: Ejecutar un comando como root
Digamos que quieres ejecutar el comando ls /root para listar los contenidos del directorio /root, que usualmente solo es accesible por el usuario root. Puedes usar:
su root -c "ls /root"Después de ejecutar este comando, se te pedirá que ingreses la contraseña de root. Una vez autenticado, se ejecutará el comando ls /root y verás los contenidos del directorio /root.
Ejemplo 2: Ejecutar un comando como otro usuario
Supongamos que tienes otro usuario en tu sistema llamado mateo, y quieres ejecutar un script de Python ubicado en /home/mateo/script.py como ese usuario. Puedes usar:
su mateo -c "python3 /home/mateo/script.py"De nuevo, se te pedirá que ingreses la contraseña para la cuenta de mateo. Una vez autenticado, el script de Python se ejecutará como mateo.
Ejemplo 3: Ejecutar múltiples comandos
También puedes ejecutar múltiples comandos en secuencia. Por ejemplo, para cambiar a un directorio y luego listar sus contenidos como el usuario mateo, puedes hacer:
su mateo -c "cd /home/mateo/documents && ls"Esto cambiará al usuario mateo, navegará a /home/mateo/documents, y luego listará los contenidos de ese directorio.
Especificar el shell
su -s /bin/[shell]Usa la opción -s para cambiar un shell predeterminado existente por uno diferente.
Ejemplo:
Digamos que actualmente has iniciado sesión como el usuario mateo, y quieres cambiar al usuario alicia usando el shell bash. Ejecutarías el siguiente comando:
su -s /bin/bash aliciaDespués de ejecutar este comando, se te pedirá que ingreses la contraseña de alicia. Si la contraseña es correcta, cambiarás a la cuenta de usuario de alicia y el shell será bash.
Preservar el entorno de la cuenta de usuario
su –p [otro_usuario]La opción -p te permite mantener el entorno de la cuenta de usuario actual.
Ejemplo:
Digamos que actualmente has iniciado sesión como el usuario mateo, y quieres cambiar al usuario alicia pero preservar las variables de entorno de mateo.
Al escribir el siguiente comando:
su -p aliciaSe te pedirá que ingreses la contraseña de alicia.
Después de ingresar exitosamente la contraseña, cambiarás al usuario alicia, pero tu entorno aún contendrá las configuraciones de mateo.
Más comandos de Linux:
| Operaciones de Directorios | rmdir · cd · pwd · exa · ls |
| Operaciones de Archivos | cat · cp · dd · less · touch · ln · rename · more · head |
| Operaciones de Sistema de Archivos | chown · mkfs · locate |
| Redes | ping · curl · wget · iptables · mtr |
| Búsqueda y Procesamiento de Texto | find · grep · sed · whatis · ripgrep · fd · tldr |
| Información y Gestión del Sistema | env · history · top · who · htop · glances · lsof |
| Gestión de Usuarios y Sesiones | screen · su · sudo · open |
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.