web-dev-qa-db-ja.com

/ var / log / btmpに書き込めません

最近、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

他のアイデアを探しているだけです。許可を変更してから、元に戻そうとしました。また、テキストを削除する他の方法をいくつか試しました。しかし、なぜこれが機能しないのかを理解したいと思います。助けてくれてありがとう!

3
Jasper

コマンドはログファイルへの書き込みにSudoを使用しません-(不必要に)Sudoを使用して/ dev/nullをcatします。 >演算子による書き込み(出力リダイレクト)は、通常のユーザーとして引き続き行われます。

次のいずれかを行うことができます

Sudo sh -c 'cat /dev/null > /var/log/btmp'

または

cat /dev/null | Sudo tee /var/log/btmp

ただし、実際には何も猫にする必要はありません。何もリダイレクトしないことで、ファイルを同じように切り捨てることができます。

Sudo -i
> /var/log/btmp
exit

またはtruncateコマンドを使用して

Sudo truncate -s0 /var/log/btmp 
4
steeldriver