dmesg: baca buffer kernel gagal: Izin ditolak

17

Sejak baru-baru ini Debian telah mengubah perilaku default untuk dmesgdan saya tidak dapat menggunakannya hanya dari pengguna lokal saya.

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

Hal yang sama berlaku untuk:

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

Membintangi pelacak bug ini mengarah ke:

Bagaimana cara mengubah perilaku ini kembali ke yang sebelumnya, di mana pengguna lokal diizinkan menggunakan dmesg. Saya tidak dapat menemukan grup tertentu untuk itu (mis. Sudoers atau sesuatu seperti itu).

malat
sumber

Jawaban:

22

Jadi itu sebenarnya sepele, melihat pesan terakhir dari laporan bug:

Bagian dari changelog dari kernel yang disebutkan di atas: * security, printk: Aktifkan SECURITY_DMESG_RESTRICT, mencegah pengguna non-root membaca log kernel secara default (sysctl: kernel.dmesg_restrict)

Jadi solusinya adalah dengan menjalankan sekali:

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

Kemudian pengguna lokal Anda dapat mulai menggunakan dmesglagi. Ini berlaku untuk semua pengguna, alih-alih grup yang awalnya saya asumsikan.

Semuanya kembali ke apa yang saya inginkan:

% dmesg|wc
   1307   11745   93652

dan

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

Dan untuk membuatnya tetap di seluruh reboot, cukup simpan sebagai file conf:

$ cat /etc/sysctl.d/10-local.conf 
kernel.dmesg_restrict = 0
malat
sumber
Apakah Anda dapat menjalankan perintah ini: cat /dev/kmesgsebagai pengguna biasa?
direprob
Itu harus /dev/kmsgdi komentar pertama yang salah ketik.
direprob
Lebih mudah untuk membuatnya permanen dengan menambahkan kernel.dmesg_restrict = 0 ke/etc/sysctl.conf
Knobee