A principal diferença entre esses comandos está na maneira como eles restringem o acesso a suas funções.
su
(que significa "usuário substituto" ou "alternar usuário") - faz exatamente isso, inicia outra instância do shell com privilégios do usuário de destino. Para garantir que você tenha os direitos para fazer isso, ele solicita a senha do usuário de destino . Então, para se tornar root, você precisa saber a senha root. Se houver vários usuários em sua máquina que precisam executar comandos como root, todos eles precisam saber a senha root - observe que será a mesma senha. Se você precisar revogar as permissões de administrador de um dos usuários, precisará alterar a senha de root e informar somente às pessoas que precisam manter o acesso - desarrumado.
sudo
(hmm ... qual é o mnemônico? Superusuário-DO?) é completamente diferente. Ele usa um arquivo de configuração (/ etc / sudoers) que lista quais usuários têm direitos para ações específicas (executar comandos como root, etc.) Quando chamado, solicita a senha do usuário que o iniciou - para garantir que a pessoa no terminal é realmente o mesmo "joe" que está listado em /etc/sudoers
. Para revogar privilégios de administrador de uma pessoa, você só precisa editar o arquivo de configuração (ou remover o usuário de um grupo listado nessa configuração). Isso resulta em um gerenciamento muito mais limpo de privilégios.
Como resultado disso, em muitos sistemas baseados no Debian, o root
usuário não tem uma senha definida - ou seja, não é possível fazer login diretamente como root.
Além disso, /etc/sudoers
permite especificar algumas opções adicionais - ou seja, o usuário X só pode executar o programa Y etc.
A sudo su
combinação usada com frequência funciona da seguinte maneira: primeiro sudo
solicita sua senha e, se você puder fazer isso, chama o próximo comando ( su
) como superusuário. Como su
é invocado por root
, não é necessário inserir a senha do usuário de destino. Portanto, sudo su
permite abrir um shell como outro usuário (incluindo root), se você tiver acesso de superusuário pelo /etc/sudoers
arquivo.
su user
login de shells não confiáveis, massu - user
. Veja unix.stackexchange.com/q/7013/8250