やるきなし

2016/12/10 04:50 / dmesg on Debian GNU/Linux sid (unstable)

いつの間にか以下のとおり sid で dmesg が user 権限で実行できないようになった.

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

/usr/share/doc/linux-image-4.8.0-2-amd64/changelog.linux.gz によるとCONFIG_SECURITY_DMESG_RESTRICT=yが default になった模様.

* security,printk: Enable SECURITY_DMESG_RESTRICT, preventing non-root users
  reading the kernel log by default (sysctl: kernel.dmesg_restrict)

少なからず困惑した人がいるようで https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842226 では純粋に bug として報告されていたり (そういう仕様になった,ということで終わり),https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847198 では adm group の user は dmesg できるようにして欲しいというのが wishlist として挙げられていたりする(これは難しそう).

以下のどちらかをすれば user 権限で dmesg できるようになる.

% sudo sysctl kernel.dmesg_restrict=0
% sudo sh -c 'echo 0 > /proc/sys/kernel/dmesg_restrict'

起動時に有効にするには/etc/rc.confにそれっぽい command を書いておくか /etc/sysctl.confもしくは /etc/sysctl.d/local.confに以下を書いておく.

kernel.dmesg_restrict = 0

追記(2017/1/20)

jessie の backports の最新版 kernel linux-image-4.8.0-0.bpo.2-amd64 (4.8.15-2~bpo8+2) でも上記と同じ症状が発生する模様.