Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

sudo - executa um comando como outro usuário

O sudo comando é como su de muitas maneiras, mas tem alguns recursos adicionais importantes. O administrador pode configurar sudo para permitir que um usuário comum execute comandos como um usuário diferente (geralmente o superusuário) de uma forma muito controlada. Em particular, um usuário pode estar restrito a um ou mais comandos específicos e nenhum outro. Outra diferença importante é que o uso de sudo não requer acesso à senha do superusuário. Para autenticar usando sudo, o usuário usa sua própria senha. Digamos, por exemplo, que sudo foi configurado para permitir a execução de um programa de backup fictício denominado “backup_script”, que requer privilégios de superusuário. Com sudo seria feito assim:



[me @ linuxbox ~] $ sudo backup_script

Senha:

Iniciando o backup do sistema ...

[me @ linuxbox ~] $ sudo backup_script

Senha:

Iniciando o backup do sistema ...


Depois de inserir o comando, nossa senha é solicitada (não a do superusuário) e, uma vez que a autenticação seja concluída, o comando especificado é executado. Uma diferença importante entre su e sudo é a de que sudo não inicia um novo shell, nem carrega o ambiente de outro usuário. Isso significa que os comandos não precisam ser citados de forma diferente do que seriam sem o uso de sudo. Observe que esse comportamento pode ser anulado especificando-se várias opções. Veja o sudo página do manual para detalhes.

Para ver quais privilégios são concedidos por sudo, use a opção “-l” para listá-los:


[me @ linuxbox ~] $ sudo -l

O usuário mim pode executar os seguintes comandos neste host: (ALL) ALL

[me @ linuxbox ~] $ sudo -l

O usuário mim pode executar os seguintes comandos neste host: (ALL) ALL


imagem

Ubuntu e sudo

Um dos problemas recorrentes para usuários regulares é como executar certas tarefas que requerem privilégios de superusuário. Essas tarefas incluem instalação e atualização de software, edição de arquivos de configuração do sistema e acesso a dispositivos. No mundo do Windows, isso geralmente é feito concedendo aos usuários privilégios administrativos. Isso permite que os usuários executem essas tarefas. No entanto, também permite que os programas executados pelo usuário tenham as mesmas habilidades. Isso é desejável na maioria dos casos, mas também permite malwares (software malicioso), como vírus, para que reine livremente o computador.

No mundo Unix, sempre houve uma divisão maior entre usuários regulares e administradores, devido à herança multiusuário do Unix. A abordagem adotada no Unix é conceder privilégios de superusuário apenas quando necessário. Para fazer isso, o su e sudo comandos são comumente usados.

Até alguns anos atrás, a maioria das distribuições Linux dependia de su para este propósito. su não exigia a configuração que sudo necessário, e ter uma conta root é tradicional no Unix. Isso introduziu um problema. Os usuários foram tentados a operar como root desnecessariamente. Na verdade, alguns usuários operavam seus sistemas exclusivamente como usuário root, uma vez que isso elimina todas aquelas mensagens irritantes de “permissão negada”. É assim que você reduz a segurança de um sistema Linux à de um sistema Windows. Não é uma boa ideia.

Quando o Ubuntu foi apresentado, seus criadores seguiram um rumo diferente. Por padrão, o Ubuntu desabilita logins para a conta root (falhando em definir uma senha para a conta), e em vez disso usa sudo para conceder privilégios de superusuário. A conta de usuário inicial recebe acesso total aos privilégios de superusuário via sudo e pode conceder poderes semelhantes às contas de usuário subsequentes.


Top OS Cloud Computing na OnWorks: