web-dev-qa-db-ja.com

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

最近、Debianはdmesgのデフォルトの動作を変更し、ローカルユーザーからだけでは使用できません。

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

同じことが当てはまります:

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

バグトラッカーに出演すると、次のような結果になります。

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

18
malat

そのため、バグレポートの最後のメッセージを見ると、実に取るに足らないことでした。

前述のカーネルからの変更ログの一部:* 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
24
malat