Diferença entre os comandos 'su' e 'su -' no Linux

Diferença entre os comandos 'su' e 'su -' no Linux

Em Linux, o 'su' O comando permite que um usuário mude para uma conta de usuário diferente. O 'su' O comando pode ser seguido pelo nome do usuário para mudar e levará ao usuário a senha do usuário que eles estão tentando mudar.

O 'su' O comando tem várias opções que podem ser usadas para modificar seu comportamento. Uma dessas opções é '-', que significa “Shell de login”. Quando o '-' a opção é usada com o 'su' Comando, faz com que o comando SU execute um shell de login para o usuário especificado. Isso significa que as variáveis ​​de ambiente do usuário e os scripts de perfil serão adquiridos como se tivessem logado no sistema normalmente.

Por exemplo, para mudar para o usuário root e executar um shell de login, você usaria o seguinte comando:

su - root  

Verifique o ambiente do sistema depois de mudar para o usuário root.

Exemplo de comando 'su - root'

Por outro lado, se você omitir o '-' opção e apenas use o 'su' Comando por si só, ele mudará para o usuário especificado sem executar um shell de login. Isso significa que as variáveis ​​de ambiente do usuário e os scripts de perfil não serão adquiridos, e o usuário estará no mesmo ambiente que antes de mudarem de usuários.

Por exemplo, para mudar para o usuário root sem executar um shell de login, você usaria o seguinte comando:

SU raiz  

Veja o ambiente do sistema depois de mudar para o usuário root.

Exemplo de comando 'su root'

Em resumo, a diferença entre 'su' e 'su -' é aquele 'su' muda para o usuário especificado sem executar um shell de login, enquanto 'su -' muda para o usuário especificado e executa um shell de login. É importante entender essa diferença, pois pode afetar o ambiente em que você está trabalhando ao mudar para uma conta de usuário diferente.