dmesg: đọc bộ đệm kernel không thành công: Quyền bị từ chối


17

Vì gần đây Debian đã thay đổi hành vi mặc định dmesgvà tôi không thể sử dụng nó đơn giản từ người dùng cục bộ của mình.

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

Tương tự như vậy đối với:

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

Bắt đầu với trình theo dõi lỗi dẫn đến:

Làm cách nào để thay đổi hành vi này trở lại hành vi trước, nơi người dùng cục bộ được phép sử dụng dmesg. Tôi không thể tìm thấy một nhóm cụ thể cho nó (ví dụ: sudoers hoặc đại loại như thế).

Câu trả lời:


21

Vì vậy, nó thực sự tầm thường, nhìn vào thông điệp cuối cùng từ báo cáo lỗi:

Một phần của thay đổi từ kernel đã nói ở trên: * security, printk: Bật SECURITY_DMESG_RESTRICT, ngăn người dùng không phải root đọc nhật ký kernel theo mặc định (sysctl: kernel.dmesg_restrict)

Vì vậy, giải pháp đơn giản là chạy một lần:

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

Sau đó, người dùng cục bộ của bạn có thể bắt đầu sử dụng dmesglại. Điều này áp dụng cho bất kỳ người dùng nào, thay vì một nhóm mà tôi giả định ban đầu.

Mọi thứ trở lại với những gì tôi muốn:

% dmesg|wc
   1307   11745   93652

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

Và để làm cho nó tồn tại trong suốt quá trình khởi động lại, chỉ cần lưu nó dưới dạng tệp conf:

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

Bạn có thể thực hiện lệnh này: cat /dev/kmesgnhư một người dùng thông thường?
direprobs

Nó nên /dev/kmsgở trong bình luận đầu tiên đó là một lỗi đánh máy.
direprobs

Dễ dàng hơn để làm cho nó vĩnh viễn bằng cách thêm kernel.dmesg_restrict = 0 vào/etc/sysctl.conf
Knobee
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.