Registro automático de scripts executados por usuários

6

Essa é uma pergunta recorrente dos meus colegas de trabalho. Somos uma equipe de muitas pessoas que trabalham nos mesmos servidores Unix e Linux. As questões recorrentes são se houver um log ou algo semelhante por padrão no sistema operacional Linux / Unix, em que você vê quando um usuário inicia um script sh / ksh ou qualquer outro programa executável no servidor.

Por exemplo, Susan executa write.ksh às 10h23, Paul executa files_rights.sh às 11h03 e Yves executa ./rename_files às 13h12. O administrador de sistema está de férias, mas ele chegará amanhã e desejará ver quem executará o que e quando o fez.

    
por Jorge Vega Sánchez 19.12.2013 / 22:59

1 resposta

4

Se você tiver o log de auditoria ativado ( auditd ), será possível consultar o arquivo audit.log para ver quando isso foi executado.

Exemplo

$ sudo ausearch -x /usr/bin/sudo | head -5
----
time->Sat Dec  7 21:15:15 2013
type=USER_AUTH msg=audit(1386468915.558:419): pid=2189 uid=1000 auid=1000 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="saml" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
----
time->Sat Dec  7 21:15:15 2013

Esteja ciente de que você terá que desenvolver regras para monitorar executáveis específicos ou diretórios inteiros de arquivos. Mas auditd é o software que pode relatar detalhes muito finos quanto a quais aplicativos e objetos de arquivo estão sendo usados em uma determinada caixa Linux.

Referências

por 20.12.2013 / 00:20