Isso ocorre porque su
cria um novo shell, começando do zero. Portanto, se você quiser que seu alias persista, será necessário criá-lo em .bashrc
.
Eu crio um alias como meu usuário atual no bash shell, que eu posso ver usando o comando alias.
Quando eu alterno o usuário sem o -
, ou seja, su testuser
, o alias não é transportado para o ambiente do novo usuário.
Alguma ideia do porquê?
De man su
:
The optional argument - may be used to provide an environment similar
to what the user would expect had the user logged in directly.
Como asoundmove e Barun explicaram, su
inicia um novo shell, então sem o -
é como rodar bash --norc
.
A coisa é, quando você cria qualquer alias no terminal, é temporário. Se você abrir outro terminal enquanto estiver conectado como o mesmo usuário, não poderá acessar esse alias. Então, você precisa armazená-los permanentemente, como dito por asoundmove , no arquivo .bashrc
. Você também pode armazená-lo em qualquer outro arquivo, mas isso deve ser incluído no seu arquivo .bashrc
.