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í]
mateo
Iniciar 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 alicia
Despué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 alicia
Se 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.