Solo repito las respuestas de @dr01 y @OneK porque a ambas les faltan algunos detalles:
su - username
- Pide al sistema que inicie una nueva sesión de inicio de sesión para el usuario especificado. El sistema requerirá la contraseña para el usuario "nombre de usuario" (incluso si es el mismo que el usuario actual).sudo su - username
hará lo mismo, pero primero le pedirá al sistema que se eleve al modo de superusuario, después de lo cualsu
no solicitará la contraseña del "nombre de usuario" porque un superusuario puede cambiar a cualquier otro usuario sin conocer su contraseña. Dicho esto,sudo
en sí mismo hace cumplir la seguridad al verificar el/etc/sudoers
para asegurarse de que el usuario actual pueda obtener permisos de superusuario y, posiblemente, verificar la contraseña del usuario actual.
También me gustaría comentar que para obtener una sesión de inicio de sesión de superusuario, use sudo -i
(o sudo -s
) como sudo su -
es una tontería:está preguntando sudo
para dar permisos de superusuario a su
de modo que su
puede iniciar un shell de inicio de sesión para el superusuario - cuando sudo
puede lograr el mismo resultado mejor por sí mismo.
Tener derechos de superusuario, sudo su - username
lo iniciará (en un shell de inicio de sesión) como $username
sin pedir contraseña, mientras que su - username
pedirá la contraseña de $username
.
sudo su - username
hace lo mismo que su - username
:ejecuta un shell de inicio de sesión como username
.
su - username
ejecutar como root y sudo su - username
no es necesario saber nombre de usuario (ya que se ejecutan con privilegios elevados), mientras que su - username
ejecutar como un usuario normal requiere saberlo.