A partir de qual log posso obter detalhes sobre os comandos sudo executados por qualquer usuário. Ele deve conter o diretório de trabalho, comando, usuário. Será útil se você puder me fornecer um script de shell para fazer isso
Dependendo da sua distribuição; simplesmente:
$ sudo grep sudo /var/log/secure
ou
$ sudo grep sudo /var/log/auth.log
que dá:
Nov 14 09:07:31 vm1 sudo: pam_unix(sudo:auth): authentication failure; logname=gareth uid=1000 euid=0 tty=/dev/pts/19 ruser=gareth rhost= user=gareth
Nov 14 09:07:37 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/yum update
Nov 14 09:07:53 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/grep sudo /var/log/secure
O usuário que está executando o comando está após o sudo:
- gareth
neste caso.
PWD
é o diretório
USER
é o usuário que gareth
está executando como - root
neste exemplo.
COMMAND
é o comando executado.
Portanto, no exemplo acima, gareth
costumava sudo
executar yum update
e, em seguida, executou este exemplo. Antes disso, ele digitou a senha incorreta.
Em sistemas mais recentes:
$ sudo journalctl _COMM=sudo
dá uma saída muito semelhante.
Um "filtro de resultados" para a solução de Gareth. (para aqueles que chegaram pelo título da postagem, não pela descrição)
Fornece uma lista limpa de apenas comandos, executada como sudo, por todos os usuários.
$sudo journalctl _COMM=sudo | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'
Solução alternativa se sed indisponível
$sudo journalctl _COMM=sudo | grep COMMAND
Resultados da C&P nas planilhas do Google
Na célula B1 C&P, esta fórmula
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))