Jas*_*per 4 ssh permissions logs
我最近在我的 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
Run Code Online (Sandbox Code Playgroud)
只是在寻找其他一些想法.. 我尝试更改权限,然后仅仅因为它而将它们更改回来。我还尝试了其他一些方法来删除文本。但我想弄清楚为什么这不仅行得通。谢谢你的帮助!
您的命令不使用 sudo 写入日志文件 - 它(不必要地)使用 sudo 来 cat /dev/null。通过>
操作员的写入(输出重定向)仍然以您的普通用户身份完成。
您可以执行以下任一操作
sudo sh -c 'cat /dev/null > /var/log/btmp'
Run Code Online (Sandbox Code Playgroud)
或者
cat /dev/null | sudo tee /var/log/btmp
Run Code Online (Sandbox Code Playgroud)
然而,真的不需要猫任何东西;您可以通过将任何内容重定向到它来同样很好地截断文件
sudo -i
> /var/log/btmp
exit
Run Code Online (Sandbox Code Playgroud)
或使用truncate
命令
sudo truncate -s0 /var/log/btmp
Run Code Online (Sandbox Code Playgroud)