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