Não é possível excluir logs de auditoria com sudo

3

Estou usando o auditctl para registrar todos os comandos executados no meu sistema Ubuntu e trabalhando em um script que analisa o log em um formato mais legível. Como esses logs tendem a se tornar muito grandes, quero excluir periodicamente os logs. Eu achei que, ao correr

sudo rm /var/log/audit/*

gostaria de receber

rm: cannot remove '/var/log/audit/*': No such file or directory

no entanto, executando

sudo su
rm /var/log/audit/*

Os logs seriam excluídos sem nenhum problema. Qual poderia ser a causa disso?

    
por Franz Payer 10.10.2012 / 05:07

1 resposta

4

A expansão do nome de arquivo é a causa do problema.

O shell está expandindo / var / log / audit / * como seu usuário atual não raiz.

Como esse usuário não tem acesso de leitura / exec a / var / log / audit, o rm está sendo passado, em vez de uma lista de arquivos a serem excluídos que estão todos nesse diretório, a cadeia literal

/var/log/audit/*

O rm está correto - NÃO há nenhum arquivo chamado "*" em / var / log / audit - portanto, não é possível excluí-lo.

Tente isto:

sudo 'rm /var/log/audit/*'

ou talvez:

sudo sh -c 'rm /var/log/audit/*'
    
por 10.10.2012 / 05:41