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

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

Há algum tempo, ao brincar com LXC sem privilégios, descobri que o comando para criar um contêiner falhava se eu mudasse supara o usuário, mas funcionava se eu fizesse ssh user@localhostlogin.

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

Obrigado!

Responder1

Uma diferença entre sue sshé que o último na verdade envolve um shell de login, enquanto o primeiro não o faz por padrão - embora crie um novo shell interativo (veja INVOCATION no topo de man bashpara saber o significado deinterativoeConecte-secartuchos). De man su:

Para compatibilidade com versões anteriores, o su padrão é não alterar o diretório atual e definir apenas as variáveis ​​de ambiente HOME e SHELL (mais USER e LOGNAME se o usuário de destino não for root). Recomenda-se sempreuse a opção --login(em vez do atalho -) para evitar efeitos colaterais causados ​​pela mistura de ambientes.

Então, você pode tentar su --loginver se isso faz o que você deseja.

Presumo que você esteja usando uma GUI, e é por isso que você simplesmente não sai e faz login novamente. No entanto, issopoderiaseja possível de qualquer maneira (dependendo, acredito, do seu sistema init), simplesmente executando logina partir de qualquer terminal que você esteja usando. Se funcionar, você deverá ver o login:prompt normal e, quando terminar, poderá exitfazê-lo conforme su.

informação relacionada