VPS

Como Usar Sudo e Arquivo Sudoers

aprenda a usar o arquivo sudo e sudoers em seu vps linux

O comando sudo permite que usuários sem acesso root executem comandos que normalmente precisariam de privilégios de super usuário, enquanto o arquivo sudoers dá instruções para o sistema sobre como lidar com o comando sudo. Neste tutorial, nós vamos mostrar para você todos os comandos sudo básicos e como editar o arquivo sudoers.

Para Entender o Sudo

Para mostrar como o sudo funciona, precisamos que você primeiro acesse sua VPS através do protocolo SSH. Se você estiver tendo problemas com esse passo, confira nosso tutorial sobre PuTTy.

Por padrão, o usuário root não precisa usar o prefixo sudo. Eles já têm todos os privilégios possíveis. Enquanto isso, se um usuário que não tem acesso root quiser adicionar outro usuário, ele precisa adicionar o prefixo sudo para o comando useradd, como no exemplo abaixo:

sudo useradd edward

Se não for utilizado o prefixo sudo nesse caso, a pessoa sem root receberia como resposta Permission denied (Permissão negada).

O Arquivo Sudoers

O comando sudo é configurado através de um arquivo chamado sudoers, que fica localizado em /etc/.

Através do comando sudo, você proporciona privilégios de nível administrativo para usuários comuns. Normalmente, o primeiro usuário que você cria ao instalar o Ubuntu tem privilégios sudo. Num ambiente de VPS, esse costuma ser o usuário root padrão. Você pode dar a outros usuários a capacidade de rodar o comando sudo. Isso pode ser feito através do comando sudoers.

Importante: Tome cuidado! Editar o arquivo sudoers com erros ou sintaxe ruim pode resultar na exclusão de todos os usuários de sua distribuição.

Arquivo de Sintaxe Sudoers

Você pode abrir o arquivo com o seu editor de texto preferido. Neste caso, nós usaremos o vi:

vi /etc/sudoers

Nosso arquivo de VPS ficará assim:

arquivo sudoers numa vps

Vamos dar uma olhada em alguns dos formatos e regras a seguir na hora de editar o sudoers:

  • Todas as linhas iniciadas em # são comentários
  • root ALL=(ALL:ALL) ALL – esta linha significa que o usuário root tem privilégios ilimitados e pode rodar qualquer comando no sistema
  • %admin ALL=(ALL) ALL – o símbolo % especifica um grupo. Qualquer um no grupo de administradores tem os mesmos privilégios que o usuário root
  • %sudo   ALL=(ALL:ALL) ALL – todos os usuários no grupo sudo têm os privilégios para executar qualquer comando

Outra linha de interesse é #includedir /etc/sudoers;d, que significa que nós podemos adicionar configurações para o arquivos sudoers.d e vinculá-las aqui.

Como Editar o Arquivo Sudoers

Para editar o arquivo /etc/sudoers, use o seguinte comando:

sudo visudo -f /etc/sudoers

É recomendado usar o visudo para editar o arquivo sudoers. O Visudo garante que o sudoers é editado por um usuário de cada vez e proporciona as checagens de sintaxe necessárias.

Para ver quais usuários estão no grupo sudo, nós podemos usar um comando grep:

grep ‘sudo’ /etc/group

Isso irá retornar uma lista de nomes de usuários.

Para adicionar um usuário chamado bill para o grupo sudo, nós podemos usar o comando adduser na linha de comando, como no exemplo abaixo:

adduser bill sudo

Se nós usamos o comando grep para checar quem está no grupo, nós veremos o nome de usuário bill.

Se você quiser dar para alguém privilégios root, apenas adicione-os para o sudo.

Para remover um usuário do sudo, a linha usada é (não se esqueça de trocar bill pelo usuário):

deluser bill sudo

O comando deluser irá remover bill do grupo sudo.

Agora o usuário bill não pode mais executar ações que exigem privilégios sudo.

Como Usar o Arquivo Sudoers para Conceder Privilégios Específicos

Mas e se nós quisermos que o bill possa rodar apenas alguns tipos específicos de comandos com privilégios sudo, como aqueles de rede?

Para fazer isso, basta a gente criar um arquivo de configuração com um nome tipo “networking” em /etc/sudoers.d/.

sudo visudo -f /etc/sudoers.d/networking

Adicione o seguinte texto no arquivo:

Cmnd_Alias     CAPTURE = /usr/sbin/tcdump

Cmnd_Alias     SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd

Cmnd_Alias     NETALL = CAPTURE, SERVERS

%netadmin ALL=NETALL

O que nós fizemos no arquivo acima é criar um grupo “netadmin”, Usuários no grupo “netadmin” podem rodar comandos especificados no NETALL. Por sua vez, o NETALL inclui todos os comandos sob as alcunhas CAPTURE e SERVERS. O comando tcpdump está sob a alcunha CAPTURE, neste caso /usr/sbin/tcpdump.

Em seguida, nós iremos adicionar o usuário bill para o grupo netadmin:

sudo adduser bill netadmin

Agora, o usuário bill poderá rodar o comando tcpdump junto de outros comandos relacionados a redes.

Resumo

Se você está trabalhando com múltiplos usuários, entender o comando sudo e o arquivo sudoers é algo fundamental. Neste tutorial, você aprendeu todos os básicos para tomar controle dos privilégios de seu sistema. Deixe um comentário abaixo e conte pra gente como você usou o arquivo sudoers em seu projeto!

Carlos E.

Carlos Estrella é formado em jornalismo pela UFSC e tem as funções de redator, tradutor e SEO na Hostinger Brasil. Já trabalhou com jornalismo de games e tecnologia e hoje aplica essa experiência escrevendo posts e tutoriais no blog da Hostinger. Suas paixões incluem games, dar rolês com a namorada e amigos e ler artigos aleatórios da Wikipédia de madrugada.

Deixe um Comentário

Deixe seu comentário!

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Comece a Economizar Agora!

Hospedagem com tudo incluso e nome de domínio
1
45
/mês