
Hace un tiempo, mientras jugaba con LXC sin privilegios, descubrí que el comando para crear un contenedor fallaba si solía su
cambiar al usuario, pero funcionaba si solía ssh user@localhost
iniciar sesión.
Esta no es una pregunta relacionada con LXC, pero me hizo preguntarme cuál es la mejor manera de cambiar de usuario sin dejar referencias ni traer variables del anterior.
¡Gracias!
Respuesta1
Una diferencia entre su
y ssh
es que este último en realidad implica un shell de inicio de sesión, mientras que el primero no lo hace de forma predeterminada, aunque sí crea un nuevo shell interactivo (consulte INVOCACIÓN en la parte superior de man bash
para conocer el significado deinteractivoyaccesoconchas). De man su
:
Para compatibilidad con versiones anteriores, su valor predeterminado no cambia el directorio actual y solo establece las variables de entorno HOME y SHELL (más USER y LOGNAME si el usuario objetivo no es root). Se recomienda siempreuse la opción --login(en lugar de su atajo -) para evitar efectos secundarios causados por la mezcla de ambientes.
Entonces, puedes intentar su --login
ver si eso hace lo que quieres.
Supongo que estás usando una GUI, por lo que no simplemente sales y vuelves a iniciar sesión. Sin embargo, esopuedeserá posible de todos modos (dependiendo, creo, de su sistema de inicio), simplemente ejecutándolo login
desde cualquier terminal que esté utilizando. Si funciona, debería ver el login:
mensaje normal y, cuando termine, podrá exit
hacerlo según su
.