Journalctl이 루트 없이 동일한 정보에 액세스할 수 있다면 dmesg에 sudo가 필요한 이유는 무엇입니까?

Journalctl이 루트 없이 동일한 정보에 액세스할 수 있다면 dmesg에 sudo가 필요한 이유는 무엇입니까?

요즘에는 적어도 Arch Linux(그리고 다른 배포판에서도 가능할까요?)1), dmesg필수 sudo, 그렇지 않으면 작동하지 않습니다:

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

반면에 journalctl(from systemd)은 필수가 아닙니다 sudo.

journalctl동일한 정보의 대부분(전부는 아니더라도)에 액세스할 수 있기 때문에 이는 이상하게 느껴집니다 dmesg.

왜 하나는 제한되고 다른 하나는 제한되지 않는지 아는 사람이 있나요?내 설치는 매우 평범하며 사용자 정의 변경 sysctl( ) 등을 적용하지 않았습니다 ./etc/sysctl.d/

SE 외부에서도 비슷한 문제를 발견했습니다.2그러나 응답이 없었습니다.

답변1

journalctl액세스는 실제로 다음 그룹의 구성원으로 제한됩니다: adm, systemd-journal, Fedora 33 wheel에 따르면 man journalctl실제로는 다음과 같습니다.

Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal', 'wheel' can see all messages.
      Pass -q to turn off this notice.

dmesgsysctl 변수에 의해 제어되는 액세스 권한 의 경우 kernel.dmesg_restrict최소한 Fedora에서는 이 변수가 0으로 설정됩니다. 이는 모든 로컬 사용자가 커널 로그를 읽을 수 있음을 의미합니다.

IMO, 액세스를 제한할 이유가 없으며 dmesg시스템 로그에는 시스템에 대한 무단 액세스를 허용할 수 있는 정보가 포함될 수 있습니다.

관련 정보