Como revisar o uso do comando sudo no Linux

Publicados: 2022-08-24
Laptop Linux mostrando um prompt bash
fatmawati achmad zaenuri/Shutterstock.com

O comando sudo dá a um usuário superusuário ou poderes de root. Sem dúvida, você deu a eles o discurso “com grandes poderes vêm grandes responsabilidades”. Veja como verificar se eles ouviram ou não.

O comando sudo

O comando sudo significa “substitute user do”. Ele permite que uma pessoa autorizada execute um comando como se fosse outro usuário. Ele pode receber parâmetros de linha de comando, um dos quais é o nome do usuário com o qual você deseja que o comando seja executado. A maneira mais comum de usar o sudo é omitir as opções de linha de comando e usar a ação padrão. Isso executa efetivamente o comando como usuário root.

Usar sudo dessa maneira requer permissão especial. Apenas os privilegiados podem usar sudo . Ao instalar uma distribuição Linux moderna, você é solicitado a configurar uma senha de root que pode ser usada com sudo . A permissão para fazer isso é concedida ao usuário comum que você cria durante a instalação. Essa é a maneira preferida de lidar com o acesso aos recursos do usuário root. A maneira antiga era criar um usuário root e fazer login como ele para administrar seu sistema.

Este era um cenário perigoso. Era fácil esquecer ou ter preguiça de fazer logout e voltar como seu usuário regular quando você não precisava mais de privilégios de root. Quaisquer erros cometidos na janela do terminal como root serão executados, não importa quão drásticos. As coisas que seriam bloqueadas pelo shell se um usuário normal tentasse executá-las seriam executadas sem dúvida quando o root as solicitasse. Usar a conta root em vez de uma conta normal também é um risco de segurança.

Como controlar o acesso sudo no Linux
RELACIONADO Como controlar o acesso sudo no Linux

Usar sudo foca a mente. Você está entrando nas mesmas águas perigosas, mas está conscientemente escolhendo fazê-lo e, esperançosamente, tomando muito cuidado. Você só invoca seu status de superusuário quando precisa fazer algo que precise deles.

Se você abrir o acesso root para outros usuários, você quer saber que eles estão tomando tanto cuidado com eles quanto você. Você não quer que eles executem comandos de forma imprudente ou especulativa. A saúde e o bem-estar de sua instalação Linux dependem de usuários privilegiados se comportando com respeito e responsabilidade.

Aqui estão várias maneiras de monitorar seu uso de root.

O arquivo auth.log

Algumas distribuições mantêm um log de autenticação, em um arquivo chamado “auth.log”. Com o advento e a rápida aceitação do systemd , a necessidade do arquivo “auth.log” foi removida. O daemon systemd-journal consolida os logs do sistema em um novo formato binário e journalctl fornece uma maneira de examinar ou interrogar os logs.

Se você tiver um arquivo “auth.log” em seu computador Linux, ele provavelmente estará no diretório “/var/log/”, embora em algumas distribuições o nome do arquivo e o caminho sejam “/var/log/audit/audit .registro."

Você pode abrir o arquivo em less assim. Lembre-se de ajustar o caminho e o nome do arquivo para se adequar à sua distribuição, e esteja preparado caso seu Linux nem mesmo crie um arquivo de autenticação.

Este comando funcionou no Ubuntu 22.04.

 menos /var/log/auth.log 

Olhando para o arquivo /var/log/auth.log com menos

O arquivo de log é aberto e você pode rolar pelo arquivo ou usar os recursos de pesquisa embutidos no less para procurar “sudo”.

O conteúdo do arquivo /var/log/auth.log exibido em menos

Mesmo usando os recursos de pesquisa de less , pode levar algum tempo para localizar as entradas sudo nas quais você está interessado.

Digamos que queremos ver para que um usuário chamado mary usou o sudo . Podemos pesquisar o arquivo de log com grep por linhas com “sudo” neles e, em seguida, canalizar a saída através do grep novamente e procurar linhas com “mary” nelas.

Observe o sudo antes do grep e antes do nome do arquivo de log.

 sudo grep sudo /var/log/auth.log | grep "maria" 

Usando grep para filtrar entradas que mencionam mary e sudo

Isso nos dá linhas que têm “sudo” e “mary” nelas.

Podemos ver que o usuário mary recebeu privilégios sudo às 15:25 e às 15:27 ela está abrindo o arquivo fstab em um editor. Esse é o tipo de atividade que definitivamente merece um mergulho mais profundo, começando com um bate-papo com o usuário.

Usando journalctl

O método preferencial em distribuições Linux baseadas em systmd é usar o comando journalctl para revisar os logs do sistema.

Se passarmos o nome de um programa para journalctl , ele procurará nos arquivos de log por entradas que contenham referências a esse programa. Como sudo é um binário localizado em “/usr/bin/sudo”, podemos passar isso para journactl . A opção -e (final do pager) diz ao journalctl para abrir o pager de arquivo padrão. Normalmente, isso será less . A tela é rolada automaticamente para baixo para mostrar as entradas mais recentes.

 sudo journalctl -e /usr/bin/sudo 

Usando journalctl para procurar entradas que mencionam sudo

As entradas de log que apresentam sudo são listadas em less.

journalctl exibindo entradas que contêm sudo no visualizador de arquivos less

Use a tecla “RightArrow” para rolar para a direita para ver o comando que foi usado com cada uma das invocações de sudo . (Ou estique a janela do terminal para que fique mais larga.)

Rolando para o lado para ver os comandos que foram usados ​​com sudo

E como a saída é exibida em less , você pode pesquisar textos como nomes de comandos, nomes de usuários e carimbos de data/hora.

RELACIONADO: Como usar journalctl para ler logs do sistema Linux

Usando o utilitário de logs do GNOME

Ambientes de área de trabalho gráficos geralmente incluem um meio de revisão de logs. Veremos o utilitário de logs do GNOME. Para acessar o utilitário de logs, pressione a tecla “Super” à esquerda da “barra de espaço”.

Digite “logs” no campo de pesquisa. O ícone “Registros” aparece.

Clique no ícone para iniciar o aplicativo “Logs”.

O aplicativo de logs do GNOME

Clicar nas categorias na barra lateral filtrará as mensagens de log por tipo de mensagem. Para fazer seleções mais granulares, clique na categoria “Todos” na barra lateral e, em seguida, clique no ícone de lupa na barra de ferramentas. Digite algum texto de pesquisa. Vamos procurar por "sudo".

Procurando por entradas que contenham sudo no aplicativo GNOME Logs

A lista de eventos é filtrada para exibir apenas os eventos relacionados ao comando sudo . Um pequeno bloco cinza no final de cada linha contém o número de entradas naquela sessão de evento. Clique em uma linha para expandi-la.

O bloco cinza contendo o número de entradas em uma sessão sudo

Clicamos na linha superior para ver os detalhes das 24 entradas naquela sessão.

Os detalhes dos eventos mostrados em uma visualização expandida

Com um pouco de rolagem, podemos ver os mesmos eventos que vimos quando usamos o comando journalctl . A sessão de edição inexplicável do usuário mary no arquivo fstab é encontrada rapidamente. Poderíamos ter pesquisado por “mary”, mas isso incluiria outras entradas além do uso de sudo .

Nem todo mundo precisa de acesso root

Onde há um requisito genuíno e sensato, dar privilégios sudo a outros usuários pode fazer sentido. Da mesma forma, só faz sentido verificar o uso – ou abuso – desses poderes, especialmente logo após eles terem sido concedidos.