Linux
如果 journalctl 可以在沒有 root 的情況下訪問相同的資訊,為什麼 dmesg 需要 sudo?
這些天來,至少在 Arch Linux 中(可能對其他發行版也是如此?1)
dmesg
需要sudo
,否則它不起作用:$ dmesg dmesg: read kernel buffer failed: Operation not permitted
另一方面,
journalctl
(fromsystemd
) 不需要sudo
.感覺很奇怪,因為
journalctl
可以訪問dmesg
.**有誰知道為什麼一個被限制,而另一個沒有?**我的安裝非常簡單,我沒有對
sysctl
(/etc/sysctl.d/
) 等進行任何自定義更改。我在 SE 2之外發現了一個類似的問題,但是沒有任何答复。
journalctl
訪問確實僅限於以下組的成員:adm
,systemd-journal
,wheel
根據man journalctl
Fedora 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
而係統日誌可能包含可能允許未經授權訪問系統的資訊。