Como verificar se um usuário tem acesso sudo no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se um usuário tem acesso sudo no Linux. Você explorará três métodos comuns: testar os privilégios sudo diretamente usando sudo -l, examinar o arquivo de configuração /etc/sudoers e verificar se o usuário pertence ao grupo sudo.

Ao concluir estas etapas, você adquirirá habilidades práticas para entender e verificar as permissões do usuário relacionadas a tarefas administrativas em um ambiente Linux.

Testar privilégios sudo com sudo -l

Nesta etapa, você aprenderá como verificar seus privilégios sudo usando o comando sudo -l. sudo (SuperUser DO) permite que um usuário com permissão execute um comando como superusuário ou outro usuário, conforme especificado pela política de segurança.

O comando sudo -l lista os comandos que o usuário tem permissão para executar no host atual, ou os comandos permitidos em um host especificado.

Vamos verificar os privilégios sudo para o usuário atual (labex). Abra seu terminal se ele ainda não estiver aberto.

Digite o seguinte comando e pressione Enter:

sudo -l

Você deve ver uma saída semelhante a esta:

Matching Defaults entries for labex on ...:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User labex may run the following commands on ...:
    (ALL : ALL) NOPASSWD: ALL

Esta saída informa que o usuário labex pode executar ALL comandos como ALL usuários (ALL : ALL) sem precisar de uma senha (NOPASSWD: ALL). Isso confirma que seu usuário labex tem privilégios sudo completos sem exigir uma senha.

Entender sudo é crucial para gerenciar permissões e executar tarefas administrativas no Linux.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar o arquivo sudoers com cat /etc/sudoers

Nesta etapa, você examinará o arquivo /etc/sudoers, que é o principal arquivo de configuração para sudo. Este arquivo determina quais usuários ou grupos podem executar quais comandos como quais usuários.

Importante: Editar o arquivo /etc/sudoers diretamente pode ser perigoso e pode bloquear você do seu sistema se feito incorretamente. Geralmente, é recomendado usar o comando visudo para editar este arquivo, pois ele fornece verificação de sintaxe. No entanto, para esta etapa, simplesmente visualizaremos o conteúdo do arquivo usando o comando cat para entender sua estrutura.

Como /etc/sudoers é um arquivo do sistema, você precisa de privilégios sudo para lê-lo.

Digite o seguinte comando em seu terminal e pressione Enter:

sudo cat /etc/sudoers

Você verá o conteúdo do arquivo /etc/sudoers. Procure por linhas que definem permissões de usuário ou grupo. Você pode ver linhas semelhantes a estas (comentários começam com #):

#
## This file MUST be edited with the 'visudo' command as root.
#
## Please consider adding local content in /etc/sudoers.d/ instead of
## directly modifying this file.
#
## See the man page for details on how to write a sudoers file.
#

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

## Host alias specification

## User alias specification

## Cmnd alias specification

## User privilege specification
root ALL=(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:

#includedir /etc/sudoers.d

A linha %sudo ALL=(ALL:ALL) ALL é particularmente importante. Significa que qualquer usuário que seja membro do grupo sudo (%sudo) pode executar comandos (ALL) como qualquer usuário (ALL) e qualquer grupo (ALL) em qualquer host (ALL). Esta é uma maneira comum de conceder privilégios administrativos a usuários em sistemas baseados em Debian, como o Ubuntu.

Ao visualizar este arquivo, você obtém informações sobre como as permissões sudo são configuradas no sistema.

Clique em Continuar para passar para a próxima etapa.

Verificar o grupo sudo com o comando groups

Na etapa anterior, você viu no arquivo /etc/sudoers que os membros do grupo sudo têm privilégios sudo completos. Nesta etapa, você verificará se o usuário labex é de fato membro do grupo sudo usando o comando groups.

O comando groups exibe os nomes dos grupos primários e suplementares para cada nome de usuário fornecido, ou para o processo atual se nenhum nome de usuário for fornecido.

Digite o seguinte comando em seu terminal e pressione Enter:

groups

Você deve ver uma saída semelhante a esta, listando os grupos aos quais o usuário labex pertence:

labex sudo ssl-cert public

Esta saída mostra que labex é membro dos grupos labex, sudo, ssl-cert e public. A presença de sudo na lista confirma que o usuário labex faz parte do grupo que recebe privilégios sudo de acordo com o arquivo /etc/sudoers.

Alternativamente, você pode especificar o nome de usuário com o comando groups:

groups labex

A saída será a mesma:

labex : labex sudo ssl-cert public

Esta etapa reforça a conexão entre a associação ao grupo e os privilégios sudo conforme configurado no sistema.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, você aprendeu como verificar se um usuário tem acesso sudo no Linux. Você começou usando o comando sudo -l para listar os comandos que o usuário atual tem permissão para executar com privilégios sudo, o que confirmou que o usuário labex tem acesso sudo completo sem senha.

Em seguida, você explorou o arquivo /etc/sudoers usando o comando cat para entender seu papel na configuração das permissões sudo, embora tenha sido enfatizado que visudo é a ferramenta recomendada para editar este arquivo. Finalmente, você normalmente verificaria se o usuário faz parte do grupo sudo usando o comando groups, pois a associação ao grupo é uma maneira comum de conceder acesso sudo.