2019年8月18日 星期日

禁止普通使用者查看dmesg資訊

Source:

dmesg能夠輸出kernel ring buffer中的內容,這些內容中可能會包含一些敏感資訊。

根據 kernel docs 中的說明:


This toggle indicates whether unprivileged users are prevented from using dmesg(8) to view messages from the kernel’s log buffer. When dmesg_restrict is set to (0) there are no restrictions. When dmesg_restrict is set set to (1), users must have CAP_SYSLOG to use dmesg(8). The kernel config option CONFIG_SECURITY_DMESG_RESTRICT sets the default value of dmesg_restrict.

我們可以通過設置內核參數 dmesg_restrict 為 1 的方式來禁止普通使用者查看demsg資訊


sudo sysctl -w kernel.dmesg_restrict=1

我們來看一下現在 dmesg_restrict 的值是什麼


sysctl kernel.dmesg_restrict

kernel.dmesg_restrict = 1

現在再來用普通用戶執行demsg:


[lujun9972@T520 wikit.docker]$ dmesg

dmesg: 讀取內核緩衝區失敗: 不允許的操作

會發現提示無法讀取內核緩衝區

要讓該設置永久生效,則需要修改 /etc/sysctl.conf 文件


sudo echo 'kernel.dmesg_restrict=1' >> /etc/sysctl.conf

沒有留言: