Tidak dapat menghapus log audit dengan sudo

3

Saya menggunakan auditctl untuk mencatat semua perintah yang berjalan di sistem Ubuntu saya dan saya mengerjakan skrip yang mem-parsing log ke dalam format yang lebih mudah dibaca. Karena log ini cenderung menjadi sangat besar, saya ingin menghapus log secara berkala. Saya menemukan itu dengan berlari

sudo rm /var/log/audit/*

Saya akan mendapatkan

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

Namun dengan berlari

sudo su
rm /var/log/audit/*

Log akan dihapus tanpa masalah. Apa yang bisa menjadi penyebab hal ini?

Franz Payer
sumber

Jawaban:

4

Ekspansi nama file adalah penyebab masalah.

Shell sedang mengembang / var / log / audit / * sebagai pengguna non-root Anda saat ini.

Karena pengguna itu tidak memiliki akses baca / exec ke / var / log / audit, rm diteruskan, alih-alih daftar file untuk dihapus yang semuanya ada di direktori itu, string literal

/var/log/audit/*

rm benar - tidak ada file bernama "*" di / var / log / audit - jadi tidak bisa menghapusnya.

Coba ini:

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

atau mungkin:

sudo sh -c 'rm /var/log/audit/*'
pbr
sumber