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
沒有留言:
張貼留言