O sudoarquivo de serviço existe para garantir que os privilégios solicitados não permaneçam após uma reinicialização. Basicamente, garante que após a reinicialização, os usuários normais que solicitaram permissões de root permanecerão como usuários normais.
Uma explicação detalhada sobre o sudo
Toda a explicação abaixo é obter todas as informações para todos que lêem essa pergunta e explicar o que o arquivo sudo na pasta de serviço está fazendo lá.
Quando você instala o Ubuntu ou qualquer outra distribuição que use sudoa diferença entre ser root e ser um usuário que usa sudopara obter privilégios de "root like" (privilégios administrativos ou superusuário), é o seguinte:
Como raiz
- Não é solicitada uma senha para todos ou todos os comandos executados em uma sessão
- Nem todos os comandos que você executa serão registrados por padrão
- O sistema assume que você sabe o que está fazendo (razão pela qual não solicita uma senha cada vez que você executa um comando)
- Não há segunda chance ou opção de última hora se você cometer um erro
Como sudo
- Você é solicitado a fornecer uma senha para cada um ou todos os comandos executados em uma sessão. Por exemplo, se você abrir um terminal e executar um comando que precise de privilégios administrativos, ele solicitará a senha uma vez para essa sessão até você fechar o terminal ou sair. Isso varia dependendo do comando que você usa e onde. Pode pedir uma ou várias vezes.
- Todos os comandos que você executa serão registrados, pois você está realmente pedindo permissão para usar um comando com privilégios de superusuário.
- O sistema assume que você está pedindo permissão temporariamente e o direito administrativo será emprestado temporariamente (até você sair, fechar o terminal, etc.)
- Você tem uma opção de última hora para corrigir qualquer erro. Isso é feito no momento em que você solicita a senha.
Por que foi criado o SUDO
A criação do SUDO foi feita porque, no passado, o uso da raiz criava mais problemas do que soluções. Os usuários tinham todos os direitos, o que significava que, se eles fizeram alguma limpeza de primavera e literalmente apagou o /usr, /libe /binpastas (porque eles achavam que não precisava deles) .. adivinhar o que iria acontecer. Muitos problemas no passado eram porque os usuários não sabiam o poder que tinham ao usar o root. Basicamente, eles tinham raiz, mas não entendiam o Linux, a hierarquia do sistema de arquivos, quais arquivos eram importantes etc. (algo como ter um ferrari e não saber dirigir ... em uma rodovia!)
SUDO também é usado por aplicativos da GUI (como o Update Manager) quando eles precisam de privilégios administrativos temporários para fazer alguma coisa. Eles precisam apenas de uma quantidade específica de comandos (normalmente 1) e, em seguida, retornam ao privilégio no nível do usuário. Isso é para evitar privilégios de root o tempo todo e evitar erros, se o usuário decidir remover alguma parte importante do sistema.
Além disso, oferece uma segurança melhor, porque o usuário root é desativado por padrão.
Por fim, se você possui um PC ou servidor de mesa, não deseja que todos sejam root nem tenham todos os privilégios de administrador. É uma péssima idéia se sua irmã ou irmãozinho começar a se perguntar o que aconteceria se a chave fosse /bootencontrada DEL. É aqui que sudoentra para diminuir a chance de algo ruim acontecer.
O que significa fornecer privilégios limitados de superusuário para usuários específicos ?
O usuário ou sudo do sudo realmente possui um arquivo de configuração que informa o quão limitado ou aberto o comando sudo para um usuário específico é. O arquivo /etc/sudoerstem todas as informações para limitar ou conceder acesso a um usuário sudo. Por padrão, ele vem com acesso a tudo, mas você pode configurar ou limitar isso como desejar.
Para obter informações sobre como usar o tipo de arquivo sudoers man sudoersem um terminal. Por exemplo, o formato normal é:
HOST DO USUÁRIO = COMANDOS
Por exemplo cyrex server1 = /bin/ls, dará ao usuário cyrex no servidor host1 acesso para executar o comando ls.
Por exemplo cyrex server1 (root) = /bin/ls, dará ao usuário cyrex no servidor host1 acesso para executar o comando ls como root.
Por exemplo cyrex ALL = /bin/ls, dará ao usuário cyrex em todos os hosts acesso para executar o comando ls.
Por exemplo cyrex ALL = ALL, dará ao usuário cyrex em todos os hosts acesso para executar todos os comandos.
Por exemplo luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall, permitirá que eu execute o sudo para os comandos kille killallcomo root sem solicitar uma senha.
