domingo, 21 de março de 2010

Apagando arquivos de Log

Recentemente precisei escrever um script simples para apagar logs de acesso de um sistema debian. Não é nada comparado com qualquer log cleaner, mas, deu pro gasto.

Segue código:

#!/bin/bash

USUARIO=$1
IP=$2

MESSAGES=/var/log/messages
FTP=/var/log/vsftpd.log
LOGIN=/var/log/wtmp
AUTH=/var/log/auth.log


if [ $# -lt 1 ] ; then
    echo "uso: clean usuario [arquivo]"
    exit;
fi


if [ $USUARIO == root ] ; then
    echo "deletando /root/.bash_history"
    rm -f /root/.bash_history
else
    echo "deletando /home/"$USUARIO"/.bash_history"
    rm -f /home/$USUARIO/.bash_history
fi

echo "Limpando entradas em" $MESSAGES "que correspondem ao usuario" $USUARIO
cat $MESSAGES | grep -v $USUARIO > $MESSAGES

echo "Limpando entradas em" $FTP "que correspondem ao usuario" $USUARIO
cat $FTP | grep -v $USUARIO > $FTP

echo "Limpando entradas em" $LOGIN "que correspondem ao usuario" $USUARIO
cat $LOGIN | grep -v $USUARIO > $LOGIN

echo "Limpando entradas em" $AUTH "que correspondem ao usuario" $USUARIO
cat $AUTH | grep -v $USUARIO > $AUTH

if [ $# == 2 ] ; then
    echo "Limpando linhas em "$AUTH "que correspondem a" $2
    cat $AUTH | grep -v $2 > $AUTH

O que o script faz é o seguinte:

 primeiro ele apaga .bash_history no diretório:

   /root - caso o usuário especificado como parametro seja root.

   /home/usuario - caso usuário passado como parametro seja diferente de root.

Após isso, o script faz uma busca em alguns arquivos e apaga todas as linhas que combinam com o usuário passado com parâmetro. Os arquivos procurados são os seguintes:

/var/log/messages   -  registrar todas as operações do sistema ou de programas do mesmo.
/var/log/vsftpd.log  - registrar todas as operações logon/logoff realizadas pelo daemon de ftp.

/var/log/wtmp - registrar os logons de usuários. É um arquivo binário que trabalha em conjunto com a função who para a identificação do usuário.

/var/log/auth.log - Registra operações de autenticações.

Lembrando que você ainda pode especificar, no lugar do usuário, qualquer string que deseja retirar dos arquivos mencionados a cima.  Se você desejar adicionar um outro arquivo para realizar a limpeza é só passar o diretório como segundo parâmetro, assim:

giorge#: clean root /var/log/dmesg

O script é bem básico mesmo e só faz o feijão com arroz. Se você precisar de algo mais elaborado melhor procurar pelo ZAP ou pelo hideme.c.

Abraços

Giorge Henrique Abdala

Nenhum comentário:

Postar um comentário