dmesg : 커널 버퍼 읽기 실패 : 권한 거부


17

최근 데비안은에 대한 기본 동작을 변경했으며 dmesg로컬 사용자가 간단히 사용할 수 없습니다.

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

동일하다 :

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

버그 추적기를 쳐다 보면 다음이 발생합니다.

로컬 사용자가 dmesg를 사용할 수있는 이전 동작으로이 동작을 다시 변경하는 방법 특정 그룹 (예 : sudoers 또는 이와 유사한 것)을 찾을 수 없습니다.

답변:


22

따라서 버그 보고서의 마지막 메시지를 보면 실제로 사소한 것입니다.

위에서 언급 한 커널의 변경 로그 부분 : * security, printk : SECURITY_DMESG_RESTRICT를 활성화하여 루트가 아닌 사용자가 기본적으로 커널 로그를 읽지 못하게합니다 (sysctl : kernel.dmesg_restrict)

따라서 솔루션은 단순히 한 번만 실행하면됩니다.

% 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

cat /dev/kmesg일반 사용자로서이 명령을 실행할 수 있습니까?
direprobs

/dev/kmsg오타였던 첫 번째 의견에 있어야합니다 .
direprobs

다음을 추가 kernel.dmesg_restrict = 0 하여 영구적으로 만들기 더 /etc/sysctl.conf
쉬움
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.