在 Debian / Mint 上使用 / 不使用 sudo 的 dmesg

Lin*_*eak 5 debian linux-mint dmesg

前段时间我注意到了这种差异,但直到现在,我都懒得问,这是为什么?

在 Linux Mint 18(基于 Ubuntu)上,我可以在dmesg不使用sudo.

在 GNU/Linux Debian 9 上,我必须使用 sudo 才能使用例如dmesg.

我想知道,这种行为在哪里编码?它可以改变吗?

Ste*_*itt 10

这由内核文档中记录的dmesg_restrict sysctl条目控制。它的默认值由内核配置值决定,它通常在现代发行版中启用。CONFIG_SECURITY_DMESG_RESTRICT

您可以通过运行查看当前值

/sbin/sysctl kernel.dmesg_restrict
Run Code Online (Sandbox Code Playgroud)

并使用 (as root)更改其值

sysctl -w kernel.dmesg_restrict=1
Run Code Online (Sandbox Code Playgroud)

(启用限制)或

sysctl -w kernel.dmesg_restrict=0
Run Code Online (Sandbox Code Playgroud)

(禁用它并恢复旧的行为)。

要使此更改永久(在启动时自动应用),请将其写入/etc/sysctl.conf或 下的配置文件/etc/sysctl.d:

echo kernel.dmesg_restrict=0 | sudo tee -a /etc/sysctl.d/99-dmesg.conf
Run Code Online (Sandbox Code Playgroud)