dmesg:カーネルバッファーの読み取りに失敗しました:許可が拒否されました


17

Debianは最近、デフォルトの動作を変更して以来dmesg、ローカルユーザーから単純に使用することができません。

% dmesg
dmesg: read kernel buffer failed: Operation not permitted

同じことが言えます:

% cat /dev/kmsg                      
cat: /dev/kmsg: Operation not permitted

バグトラッカーに主演することにより、次のことが実現します。

この動作をローカルユーザーがdmesgの使用を許可されている以前の動作に戻すにはどうすればよいですか。特定のグループ(例:sudoersなど)が見つかりませんでした。

回答:


21

バグレポートの最後のメッセージを見ると、実際には些細なことでした。

前述のカーネルの変更ログの一部:* security、printk:SECURITY_DMESG_RESTRICTを有効にし、デフォルトで非rootユーザーがカーネルログを読み取れないようにします(sysctl:kernel.dmesg_restrict)

そのため、解決策は1回実行するだけです。

% sudo sysctl kernel.dmesg_restrict=0
kernel.dmesg_restrict = 0

その後、ローカルユーザーはdmesg再び使用を開始できます。これは、最初に想定したグループではなく、すべてのユーザーに適用されます。

すべてが私が望んでいたものに戻っています:

% dmesg|wc
   1307   11745   93652

そして

% cat /dev/kmsg|head|wc
     10      82     857

また、再起動後も保持するには、confファイルとして保存します。

$ cat /etc/sysctl.d/10-local.conf 
kernel.dmesg_restrict = 0

このコマンドを実行できcat /dev/kmesgますか:通常のユーザーとして?
direprobs

/dev/kmsgタイプミスだった最初のコメントにあるはずです。
direprobs

容易に追加することによって、それは恒久的なものにする kernel.dmesg_restrict = 0 には/etc/sysctl.conf
Knobee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.