Linux

如果 journalctl 可以在沒有 root 的情況下訪問相同的資訊,為什麼 dmesg 需要 sudo?

  • June 11, 2021

這些天來,至少在 Arch Linux 中(可能對其他發行版也是如此?1dmesg需要sudo,否則它不起作用:

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

另一方面,journalctl(from systemd) 不需要sudo.

感覺很奇怪,因為journalctl可以訪問dmesg.

**有誰知道為什麼一個被限制,而另一個沒有?**我的安裝非常簡單,我沒有對sysctl( /etc/sysctl.d/) 等進行任何自定義更改。

我在 SE 2之外發現了一個類似的問題,但是沒有任何答复。

journalctl訪問確實僅限於以下組的成員:adm, systemd-journal,wheel根據man journalctlFedora 33 確實如此:

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.

至於dmesg它的訪問是由 sysctl 變數控制的,kernel.dmesg_restrict至少在 Fedora 中它被設置為 0,這意味著任何本地使用者都可以讀取核心日誌。

IMO,我認為沒有理由限制訪問,dmesg而係統日誌可能包含可能允許未經授權訪問系統的資訊。

引用自:https://unix.stackexchange.com/questions/653619