O que significa o erro “X não está no arquivo sudoers. Este incidente será relatado. ”Significa filosoficamente / logicamente?

31

Além disso, a pergunta " Nome de usuário não está no arquivo sudoers. Este incidente será relatado ", que explicou os aspectos programáticos do erro e sugeriu algumas soluções alternativas, quero saber: o que esse erro significa?

X is not in the sudoers file.  This incident will be reported.

A parte anterior do erro explica, claramente, o erro. Mas a segunda parte diz que "Este erro será relatado" ?! Mas por que? Por que o erro será relatado e onde? A quem? Sou usuário e administrador e não recebi nenhum relatório :)!

Kasramvd
fonte
12
Filosóficamente?!? Ou tecnicamente?
Jeff Schaller
63
obrigatório xkcd
steeldriver
9
Um sistema (bom) registra silenciosamente muitas coisas. Muitas e muitas coisas. Especialmente erros. Especialmente se considerar que eles são mal intencionados. Penso que, perguntando "filosoficamente", o OP está perguntando por que esse erro concreto específico o alerta de maneira tão intimidadora sobre os relatórios, enquanto a maioria das outras falhas é relatada silenciosamente. Pode ser apenas o que o codificador original escreveu no momento, mas depois de muitas versões nunca foi alterado e pode haver um significado mais profundo. Ou talvez não. Se esse é o foco, acho que essa é uma ótima pergunta que já me perguntei algumas vezes.
XDaizu
4
Presumivelmente, isso remonta a quando você tinha um edifício inteiro usando 1 computador e um administrador / operador cuidava do computador como um trabalho de período integral.
user253751
11
Anos atrás, quando eu estava na universidade e antes disso sudo, eu estava tentando fazer algo como raiz na minha caixa pessoal do Linux. Então eu corri su. Quando rejeitou minha senha, tentei várias vezes pensando que havia digitado errado minha senha. Eventualmente, percebi que o terminal estava conectado ao servidor de e-mail da escola. Pouco tempo depois, o sysadmin do servidor de email me perguntou por que eu havia tentado fazer root no sistema dele. Portanto, claramente havia algum tipo de relatório, mesmo que fosse nos sudodias anteriores .
Scott Severance

Respostas:

38

É provável que os administradores de um sistema desejem saber quando um usuário não privilegiado tenta, mas falha ao executar comandos usando sudo. Se isso acontecer, pode ser um sinal de

  1. um usuário legítimo curioso apenas tentando as coisas, ou
  2. um hacker tentando fazer "coisas ruins".

Como, sudopor si só, não é possível distinguir entre eles, tentativas fracassadas de uso sudosão trazidas à atenção dos administradores.

Dependendo de como sudoestá configurado no seu sistema, qualquer tentativa (bem-sucedida ou não) de usar sudoserá registrada. Tentativas bem-sucedidas são registradas para fins de auditoria (para poder rastrear quem fez o que quando) e falhas nas tentativas de segurança.

Em uma instalação bastante simples do Ubuntu que eu tenho, isso está conectado /var/log/auth.log.

Se um usuário digitar a senha errada três vezes ou se não estiver no sudoersarquivo, um email será enviado para o root (dependendo da configuração de sudo, veja abaixo). É isso que significa "este incidente será relatado".

O email terá um assunto de destaque:

Subject: *** SECURITY information for thehostname ***

O corpo da mensagem contém as linhas relevantes do arquivo de log, por exemplo

thehostname : Jun 22 07:07:44 : nobody : user NOT in sudoers ; TTY=console ; PWD=/some/path ; USER=root ; COMMAND=/bin/ls

(Aqui, o usuário nobodytentou correr lsatravés sudocomo root, mas não conseguiu, uma vez que não estavam no sudoersarquivo).

Nenhum email será enviado se o email (local) não tiver sido configurado no sistema.

Todas essas coisas também são configuráveis ​​e as variações locais na configuração padrão podem diferir entre as variantes do Unix.

Dê uma olhada na mail_no_userconfiguração (e mail_*configurações relacionadas ) no sudoersmanual (minha ênfase abaixo):

mail_no_user

Se definido, o email será enviado ao usuário mailto se o usuário que está chamando não estiver no sudoersarquivo. Esse sinalizador está ativado por padrão .

Kusalananda
fonte
Ou, mais frequentemente, ime 3) alguém digitando errado. Em um empregador, quando eu fazia isso, costumava receber regularmente o e-mail enviado para mim, com a lista de destinatários, sig indicando a localização do escritório e o conteúdo do e-mail de aviso, como rejeições de ausência temporária. Certa vez, fui ao escritório pedir desculpas e assustá-los um pouco, acho. Talvez tenha sido que, apesar de ser um sujeito respeitável envolvido em atividades mundanas, às vezes eu ando por aí com um capuz preto e um par de DMs como aqueles que estão nas fotos como @Kusalananda será capaz de confirmar.
22618 Dannie
15

No Debian e seus derivados, os sudorelatórios de incidentes são registrados e /var/log/auth.logcontêm informações de autorização do sistema, incluindo logins de usuários e mecanismos de autenticação que foram usados:

$ sudo su
[sudo] password for regularjohn: 
regularjohn is not in the sudoers file.  This incident will be reported.

[as root]

$ tail -n 1 /var/log/auth.log
Jun 21 16:30:26 marvin sudo: regularjohn : user NOT in sudoers ; TTY=pts/19 ; PWD=/home/regularjohn ; USER=root ; COMMAND=/bin/su

Esse arquivo de log normalmente é acessível apenas aos usuários do admgrupo, ou seja, usuários com acesso às tarefas de monitoramento do sistema :

$ ls -la /var/log/auth.log
-rw-r----- 1 syslog adm 76189 Jun 21 16:30 /var/log/auth.log

No Debian Wiki :

A admissão de grupo é usada para tarefas de monitoramento do sistema. Os membros deste grupo podem ler muitos arquivos de log em / var / log e podem usar o xconsole. Historicamente, / var / log era / usr / adm (e mais tarde / var / adm), portanto, o nome do grupo.

Os usuários do admgrupo geralmente são administradores e essa permissão do grupo visa permitir que eles leiam arquivos de log sem a necessidade su.

Por padrão, sudousa o authrecurso Syslog para log . sudocomportamento de log 's pode ser modificada usando a logfileou syslogopções em /etc/sudoersou /etc/sudoers.d:

  • A logfileopção define o caminho para o sudoarquivo de log.
  • A syslogopção define o recurso Syslog quando syslog(3)está sendo usado para o log.

O authrecurso Syslog é redirecionado para /var/log/auth.logdentro etc/syslog.confpela presença da seguinte sub-rotina de configuração:

auth,authpriv.*         /var/log/auth.log
Thomas Nyman
fonte
7

Tecnicamente, isso não significa muito. Muitos (se não todos) outros softwares registram logins, com falha ou não. Por exemplo sshde su:

Jun 21 17:52:22 somehost sshd[25807]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=::1  user=root
Jun 21 17:52:22 somehost sshd[25807]: Failed password for root from ::1 port 37268 ssh2
Jun 21 17:52:23 somehost sshd[25807]: Connection closed by ::1 port 37268 [preauth]
Jun 21 17:52:28 somehost su[25809]: pam_unix(su:auth): authentication failure; logname= uid=1000 euid=0 tty=/dev/pts/15 ruser=someuser rhost=  user=root
Jun 21 17:52:28 somehost su[25809]: pam_authenticate: Authentication failure
Jun 21 17:52:28 somehost su[25809]: FAILED su for root by someuser

Além disso, muitos sistemas possuem algum tipo de automação para detectar erros de autenticação excessivos para poder lidar com possíveis tentativas de força bruta, ou apenas usar as informações para reconstruir eventos após o aparecimento de problemas.

sudonão faz nada de excepcional aqui. Tudo o que a mensagem significa é que o autor de sudoparece ter adotado uma filosofia um tanto agressiva na comunicação com os usuários que executam comandos que não podem usar.

ilkkachu
fonte
6

Significa simplesmente que alguém tentou usar o sudocomando (para acessar privilégios de administrador), que não tem autorização para usá-lo (porque não está listado no arquivo sudoers). Isso pode ser uma tentativa de hacking ou algum outro tipo de risco à segurança; portanto, a mensagem está informando que a tentativa de uso sudoserá relatada ao administrador do sistema, para que eles possam investigar.

Time4Tea
fonte
11
Bem, na minha máquina local, sou o único usuário e administrador e posso dizer que não recebi nenhum relatório!
precisa saber é o seguinte
4
@ Kasramvd você provavelmente fez, em algum arquivo em algum lugar. Não sei exatamente para onde sudoenvia o relatório. Na sua situação, com apenas um usuário, provavelmente não é muito importante.
fácil
2
@Kasramvd você verificou um email para o usuário root? Além disso, você é o administrador, mas não possui o sudo para sua conta? Como você lida com a escalação de privilégios?
precisa saber é o seguinte
@Kasramvd Não foi relatado a você ....
Thorbjørn Ravn Andersen
11
@ Kasramvd Você acha que é o administrador. O sistema operacional é claramente dizendo que você não tem permissão para atuar como um administrador - você está o dono do hardware no melhor, mas isso não significa necessariamente torná-lo um admin
slebetman