O arquivo sudo
service existe para garantir que os privilégios solicitados não permaneçam após a reinicialização. Basicamente, ele 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 é para obter todas as informações para todos que lerem esta questão e, em seguida, explicar o que o arquivo sudo na pasta de serviços está fazendo lá.
Quando você instala o Ubuntu ou qualquer outra distro que usa sudo
a diferença entre ser root e ser um usuário que usa sudo
para obter privilégios de "root like" (privilégios administrativos ou de superusuário ) é o seguinte:
Como root
- Você não é solicitado a fornecer uma senha para cada um ou todos os comandos executados em uma sessão
- Nem todos os comandos que você executa serão registrados por padrão
- O sistema pressupõe que você sabe o que está fazendo (Razão pela qual ele não solicita uma senha toda vez que você executa um comando)
- Não há segunda chance ou opção de último minuto 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 efetuar logout. Isso varia dependendo de qual comando você usa e onde. Pode perguntar uma vez ou várias vezes.
- Todos os comandos executados serão registrados, pois você está solicitando permissão para usar um comando privilegiado de superusuário.
- O sistema assume que você está solicitando permissão temporariamente e o direito administrativo será emprestado temporariamente (até você efetuar logout, fechar terminal, etc.)
- Você tem uma opção de última hora para corrigir qualquer erro. Isso é feito no momento em que você receber a senha.
Por que o SUDO foi criado
A criação do SUDO foi feita porque, no passado, o uso do root criava mais problemas do que soluções. Os usuários tinham todos os direitos, o que significava que, se fizessem alguma limpeza de primavera e literalmente apagassem as pastas /usr
, /lib
e /bin
(porque achavam que não precisavam delas) ... adivinha o que aconteceria. Muitos problemas no passado foram porque os usuários não sabiam o poder que tinham quando usavam root. Basicamente eles tinham root mas não entendiam o Linux, a hierarquia do sistema de arquivos, quais arquivos eram importantes, etc. (Algo como ter uma ferrari e não saber dirigir ... em uma rodovia!)
O
SUDO também é usado por aplicativos GUI (como o Update Manager) quando eles precisam de privilégios administrativos temporários para fazer algo. Eles só precisam de uma quantidade específica de comandos (Tipicamente 1) e depois retornam ao privilégio de nível de usuário. Isso evita ter privilégios de root o tempo todo e evitar cometer um erro se o usuário decidir remover alguma parte importante do sistema.
Além disso, oferece uma segurança melhor porque o usuário root vem desabilitado por padrão.
Por fim, se você tiver um PC ou Servidor Desktop, realmente não desejará que todos sejam root nem tenha privilégios de administrador. Muito má idéia se sua irmã mais nova ou irmãozinhos começarem a se perguntar o que aconteceria se /boot
met DEL key. É aqui que entra sudo
para diminuir a chance de acontecer algo ruim.
O que Fornece privilégios de superusuário limitados a usuários específicos significa?
O usuário sudo ou sudoers realmente tem um arquivo de configuração que informa a limitação ou a abertura do comando sudo para um usuário específico. O arquivo /etc/sudoers
tem todas as informações para limitar ou dar acesso a um usuário sudo. Por padrão, ele vem com acesso a tudo, mas você pode configurar ou limitar isso como quiser.
Para obter informações sobre como usar o tipo de arquivo sudoers man sudoers
em 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 kill
e killall
como root sem solicitar uma senha.