質問: / 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 他のアイデアを探しているだけです。許可を変更してから、元に戻そうとしました。また、テキストを削除する他の方法をいくつか試しました。しかし、なぜこれが機能しないのかを理解したいと思います。助けてくれてありがとう!
回答: コマンドはログファイルへの書き込みに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