Como eu troco o usuário sem nenhuma referência ao antigo?

1

Um tempo atrás, ao jogar com o LXC sem privilégios, descobri que o comando para criar um contêiner falhava se eu usasse su para alternar para o usuário, mas funcionava se eu usasse ssh user@localhost para efetuar login.

Esta não é uma questão relacionada ao LXC, mas me fez pensar em como trocar de usuário sem deixar referências ou trazer variáveis do antigo?

Obrigado!

    
por user72692 16.06.2014 / 21:36

1 resposta

0

A diferença entre su e ssh é que o último realmente envolve um shell de login, enquanto o primeiro não é por padrão - embora ele crie um novo shell interativo (consulte INVOCATION no início de man bash para o significado de shells interativos e login ). De man su :

For backward compatibility su defaults to not change the current directory and to only set the environment variables HOME and SHELL (plus USER and LOGNAME if the target user is not root). It is recommended to always use the --login option (instead of its shortcut -) to avoid side effects caused by mixing environments.

Então, você pode tentar su --login e ver se isso é o que você quer.

Suponho que você esteja usando uma GUI, e é por isso que você simplesmente não sai e faz login novamente. No entanto, isso pode ser possível de qualquer maneira (dependendo, acredito, em seu sistema init), simplesmente executando login de qualquer terminal que você estiver usando. Se funcionar, você deverá ver o prompt normal login: e, quando terminar, poderá usar exit como su .

    
por 16.06.2014 / 22:06

Tags