最近,我的 btmp 日志中出现了一堆条目 [因为我做了愚蠢的举动] 我解决了这个问题,但现在我想清除该日志,我将其复制到其他地方以供参考,然后我尝试将文件清空,但无济于事。然后我检查了文件本身的权限,一切看起来都正常?只是不确定为什么它不允许 sudo 访问该文件。
user@localhost:~$ sudo cat /dev/null > /var/log/btmp
-bash: /var/log/btmp: Permission denied
user@localhost:~$ ls -a -l /var/log/btmp
-rw-rw---- 1 root utmp 5502336 Aug 20 18:59 /var/log/btmp
只是想找一些其他的想法。我尝试更改权限,然后又改回来。我还尝试了其他几种方法来删除文本。但我想弄清楚为什么这不管用。谢谢您的帮助!
答案1
您的命令不使用 sudo 写入日志文件 - 它(不必要地)使用 sudo 来 cat /dev/null。通过>
操作员进行的写入(输出重定向)仍以普通用户的身份完成。
您可以执行以下任一操作
sudo sh -c 'cat /dev/null > /var/log/btmp'
或者
cat /dev/null | sudo tee /var/log/btmp
但实际上没有必要 cat 任何东西;你可以同样有效地截断文件,只需将任何内容重定向到该文件即可
sudo -i
> /var/log/btmp
exit
或者使用truncate
命令
sudo truncate -s0 /var/log/btmp