无法使用 sudo 删除审计日志

无法使用 sudo 删除审计日志

我正在使用 auditctl 记录在我的 Ubuntu 系统上运行的所有命令,并且我正在编写一个脚本,将日志解析为更易读的格式。由于这些日志往往会变得非常大,因此我想定期删除这些日志。我发现通过运行

sudo rm /var/log/audit/*

我会得到

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

但是通过运行

sudo su
rm /var/log/audit/*

日志会被删除,没有任何问题。这可能是什么原因造成的?

答案1

文件名扩展是导致该问题的原因。

该 shell 正在以您当前的非 root 用户身份扩展 /var/log/audit/*。

由于该用户没有 /var/log/audit 的读取/执行权限,因此传递的是 rm,而不是该目录中要删除的文件列表,文字字符串

/var/log/audit/*

rm 是正确的 - /var/log/audit 中没有名为“*”的文件 - 所以它无法删除它。

尝试这个:

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

或者可能:

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

相关内容