最近、Debianはdmesg
のデフォルトの動作を変更し、ローカルユーザーからだけでは使用できません。
% dmesg
dmesg: read kernel buffer failed: Operation not permitted
同じことが当てはまります:
% cat /dev/kmsg
cat: /dev/kmsg: Operation not permitted
バグトラッカーに出演すると、次のような結果になります。
この動作を、ローカルユーザーがdmesgの使用を許可されている以前の動作に戻すにはどうすればよいですか。特定のグループを見つけることができませんでした(例:sudoersなど)。
そのため、バグレポートの最後のメッセージを見ると、実に取るに足らないことでした。
前述のカーネルからの変更ログの一部:* 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