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

なぜ1つは制限され、もう1つは制限されないのかを知っている人はいますか?私のインストールは非常に普通であり、カスタム変更sysctl()などを適用していません。/etc/sysctl.d/

SEの外でも同様の問題が見つかりました。2しかし、答えはありませんでした。

ベストアンサー1

journalctlアクセスは実際には次のグループのメンバーに制限されます。adm, systemd-journal, Fedora 33wheelによると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システムログにはシステムへの不正アクセスを許可できる情報を含めることができます。

おすすめ記事