Você certamente usou o comando sudo ou viu alguma piadinha ou meme com esse comando. Para entendermos o que é visudo devemos antes entender o que é sudo e só depois partirmos para a explicação do que é ALL=(ALL:ALL) ALL
sudo permite que usuários executem tarefas que normalmente exigiriam privilégios de root.
Sudo é um comando que permite que usuários comuns executem comandos de superusuário ou administrativos. Ou seja, seu usuário que não tem permissão por si só para executar comandos de administração passa a ter quando usado “sudo” antes do comando.
maria@ti:~$ sudo useradd joao
Acima, a usuária “maria” usa sudo para conseguir criar o usuário “joao”.
Habilitando usuário para usar o comando “sudo”
Como mara consegue usar “sudo”? O usuário “joao” irá conseguir?
Maria consegue usar sudo porque alguém cadastrou ela. Para joao conseguir usar um usuário já cadastrado terá que cadastrá-lo.
Para joao ser cadastrado, temos que usar o comando visudo.
Dica: clique aqui e veja outros posts sobre Linux.
VISUDO
Visudo é um comando no sistema Linux que abre um editor de texto e dentro desse podemos habilitar usuários a usarem o comando sudo para qualquer comando ou apenas para alguns.
visudo abre para edição o arquivo de configuração /etc/sudoers, que controla os privilégios de acesso no sistema. Esse comando é usado para garantir que apenas usuários autorizados possam realizar tarefas que exigem permissões elevadas.
Abaixo está um trecho do conteúdo do arquivo /etc/sudoers
# User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "@include" directives:
Se eu quiser conceder permissão para o usuário joao executar qualquer comando usando sudo, bastaria acrescentar essa linha, abaixo de root:
root ALL=(ALL:ALL) ALL joao ALL=(ALL:ALL) ALL
ALL=(ALL:ALL) ALL
Vamos entender o que cada parte significa da linha ALL=(ALL:ALL) ALL:
- ALL=: Isso indica que a regra se aplica a todos hosts.
- (ALL:ALL): podemos entender como sendo (usuário:grupo).
- ALL: Isso indica que todos os comandos podem ser executados.
Resumindo, ALL=(ALL:ALL) ALL
está dizendo que o usuário (ou grupo de usuários) associado a essa regra pode executar qualquer comando (ALL
) como qualquer usuário ou grupo (ALL:ALL)
em qualquer host (ALL
) usando o comando sudo
.
Exemplos
#1 Abaixo, carol tem permissão somente para executar o comando /sbin/shutdown para desligar o sistema.
carol ALL=(ALL:ALL) /sbin/shutdown
#2 Essa outra configuração faz com que alice possa executar apenas o comando ls
alice ALL=(ALL:ALL) /bin/ls
#3 Permitir que o usuário “bob” execute qualquer comando, mas apenas como o usuário “www-data” em qualquer host.
bob ALL=(www-data:ALL) ALL
#4 Permitir que os membros do grupo “admin” executem apenas o comando “reboot” como qualquer usuário ou grupo em qualquer host.
%admin ALL=(ALL:ALL) /sbin/reboot
Sim, o % espécifica grupo quando usado dentro do visudo
#5 carol poderá executar qualquer comando, como qualquer usuário e grupo, mas apenas no servidor chamado de server1
carol server1=(ALL:ALL) ALL
#6 Permitir que a usuária “maria” execute apenas o comando “ifconfig” como o usuário “root”, mas apenas no host “server2”.
maria server2=(root:ALL) /sbin/ifconfig
Comment on “Linux: no VISUDO, o que quer dizer “ALL=(ALL:ALL) ALL””