dmesg -c:カーネルバッファの読み込みに失敗しました。操作は許可されていません。

dmesg -c:カーネルバッファの読み込みに失敗しました。操作は許可されていません。

カーネルモジュールを使用しているので、dmesg出力を処理する必要があります。しかし、命令することはできませんdmesg-c。 dmesgはできますが、バッファをクリアすることはできません。私は次のようなものを検索しました。

sudo sysctl kernel.dmesg_restrict =0

しかし、彼らは問題を解決できませんでした。なぜバッファを消去できないのですか?

答え1

これの説明は次のとおりです。man 2 syslog: "read all" と "size" を除くすべての syslog コマンドは、ルートでのみ使用できます。dmesg_restrictすべて読み取りとサイズへのアクセスのみを制御します。 1に設定するとルートに制限され、0に設定するとルート以外のプロセスで使用できます。

dmesg -cすべての場合にルートが必要です(厳密に言うとCAP_SYS_ADMIN)。CAP_SYSLOG

sudo dmesg -c

答え2

ただsudo dmesg -c男性と一緒に行きます。すでに動作していることを知っていますが、なぜ動作しないのかを知りたいですsudo。しかし、満足のいく答えがないので、より安全な答えを選択してください。

関連情報