La utilidad su
(abreviatura de sustituir o cambiar de usuario) permite ejecutar comandos con los privilegios de otro usuario, por defecto el usuario root.
Usar su
es la forma más sencilla de cambiar a la cuenta administrativa en la sesión de inicio de sesión actual. Esto es especialmente útil cuando el usuario root no puede iniciar sesión en el sistema a través de sshor utilizando el gestor de visualización de la GUI.
En este tutorial, explicaremos cómo utilizar el comando su
.
Cómo usar el comando su#
La sintaxis general del comando su
es la siguiente:
su ]
Cuando se invoca sin ninguna opción, el comportamiento por defecto de su
es ejecutar un shell interactivo como root:
su
Se le pedirá que introduzca la contraseña de root, y si se autentifica, el usuario que ejecuta el comando se convierte temporalmente en root.
Las variables de entorno session shell (SHELL
) y home (HOME
) se fijan desde la entrada del usuario sustituto /etc/passwd
, y el directorio actual no se modifica.
Para confirmar que el usuario ha cambiado, utiliza el comando whoami
:
whoami
El comando imprimirá el nombre del usuario que ejecuta la sesión actual del shell:
root
La opción más utilizada al invocar su
es -
-l
--login
). Esto hace que el shell sea un shell de inicio de sesión con un entorno muy similar al de un inicio de sesión real y cambia el directorio actual:
su -
Si quieres ejecutar otro shell en lugar del definido en el archivo passwd
, utiliza la opción -s
--shell
. Por ejemplo, para cambiar a root y ejecutar el zsh
shell, escribirías:
su -s /usr/bin/zsh
Para conservar todo el entorno (HOME
SHELL
USER
, y LOGNAME
) del usuario que llama, invoca el comando con la opción -p
--preserve-environment
.
su -p
Cuando se utiliza la opción -
-p
se ignora.
Si quieres ejecutar un comando como usuario sustituto sin iniciar un shell interactivo, utiliza la opción -c
--command
. Por ejemplo, para invocar el comando ps
como root, escribirías:
su -c ps
Para cambiar a otra cuenta de usuario, pasa el nombre del usuario como argumento a su
. Por ejemplo, para cambiar al usuario tyrion
se escribiría:
su tyrion
Sudo vs. Su #
En algunas distribuciones de Linux como Ubuntu, la cuenta de usuario rootestá desactivada por defecto por razones de seguridad. Esto significa que no se establece ninguna contraseña para root, y no se puede utilizar su
para cambiar a root.
Una opción para cambiar a root sería anteponer al comando su
el sudo
e introducir la contraseña del usuario actualmente conectado:
sudo su -
El comando sudo
permite ejecutar programas como otro usuario, por defecto el usuario root.
Si el usuario se concede con sudo
valorar, el comando su
se invoca como root. Ejecutar sudo su -
y luego escribir la contraseña de usuario tiene el mismo efecto que ejecutar su -
y escribir la contraseña de root.
Cuando se usa con la opción -i
sudo
ejecuta un shell de inicio de sesión interactivo con el entorno del usuario root:
sudo -i
sudo -i
es básicamente lo mismo que ejecutar su -
.
La ventaja de usar sudo
sobre su
es que la contraseña de root no necesita ser compartida entre múltiples cuentas de usuarios administrativos.
Con sudo
también puedes permitir a los usuarios ejecutar sólo programas específicos con privilegios de root.
Conclusión #
su
es una utilidad de línea de comandos que te permite convertirte temporalmente en otro usuario y ejecutar comandos con el usuario sustituto.