You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何允许普通用户查看/proc/kallsyms中的内核符号地址?

让普通用户查看/proc/kallsyms真实内核符号地址的方法

这问题我太熟悉了——内核默认通过kptr_restrict参数限制了普通用户访问真实的内核符号地址,咱们分临时生效和永久生效两种方案来解决:

临时生效(重启后失效)

直接以root身份执行以下命令修改内核参数:

sysctl -w kernel.kptr_restrict=0

参数说明:

  • kernel.kptr_restrict=0:允许所有用户读取/proc/kallsyms里的真实内核符号地址
  • 默认值通常是1:仅允许拥有CAP_SYSLOG或CAP_SYS_ADMIN权限的用户(比如root)查看真实地址,普通用户看到的全是0x00000000
  • 值为2:完全禁止任何用户读取真实地址,哪怕是root也不行(除非进程有特定权限)

永久生效(重启后保持设置)

如果希望重启系统后依然保持这个配置,需要修改sysctl的配置文件:

  1. 以root身份创建或编辑一个自定义配置文件,比如:
echo "kernel.kptr_restrict = 0" > /etc/sysctl.d/99-kptr-restrict.conf
  1. 执行以下命令让配置立即生效:
sysctl -p /etc/sysctl.d/99-kptr-restrict.conf

重要安全提示

一定要注意:降低kptr_restrict的限制会显著增加系统的安全风险——恶意程序可以利用内核符号地址来构造提权漏洞或其他攻击。这个操作仅适合测试环境、可信的内部环境,生产环境请务必谨慎评估风险后再操作!

内容的提问来源于stack exchange,提问作者Bob5421

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:59:36