Embora o uso primário do comando `su` (usuário substituto) seja mudar para o usuário root (ou outro usuário) e obter privilégios elevados, ele possui algumas outras funcionalidades menos comuns, mas ainda úteis:
*
Mudando para um usuário específico: Você pode usar o `su` para se tornar qualquer usuário no sistema, não apenas root. Por exemplo, `su Jane_doe` mudaria você para o usuário" jane_doe ", supondo que você tenha as permissões necessárias (normalmente apenas possível se você for root ou tiver uma senha para esse usuário). Isso é útil para testar ou solucionar problemas da perspectiva de um usuário diferente.
*
Especificando um shell: Você pode especificar qual shell usar após a troca de usuários. Por exemplo:`su -c"/bin/bash -l "jane_doe` Isso executará um shell de login (` -l`) como usuário "jane_doe" usando o bash. A opção `-C` permite executar um único comando como o usuário especificado.
*
Usando a opção `-m` para um novo ambiente de login: A opção `-m` cria um novo ambiente de login para o usuário especificado. Isso normalmente definirá as variáveis de ambiente do usuário e executa os scripts de login do usuário. Isso fornece uma emulação mais completa de fazer login como esse usuário diretamente. Sem `-m`, você herdará algumas de suas variáveis de ambiente original.
*
executando um único comando: Como mencionado acima, a opção `-C` executa um único comando como o usuário especificado. Isso é útil para executar uma tarefa específica com privilégios de usuário elevados ou diferentes sem uma sessão de shell interativa completa. `su -c" comando "user` é equivalente ao` sudo comando`.
É importante observar que o uso de `su` requer conhecimento da senha do usuário de destino. `sudo` é geralmente preferido para executar comandos únicos com privilégios elevados, pois aproveita um sistema de permissões mais seguro com base no arquivo`/etc/sudoers`, evitando a necessidade de compartilhar a senha da raiz.