是的,通常 root 用户有足够的权限间接修改内核代码,尽管有一些机制可以用来限制这一点,前提是考虑到足够的安全措施。特权 root 用户可以修改内核代码的方式的非详尽列表:
该ioperm()和iopl()系统调用可以设置I / O端口的权限。
当然,引导目录(包括内核)中的文件是可以修改的。
的/dev/mem,/dev/kmem和/dev/port字符设备允许直接内存访问。
各种 MSR 可用于更改低级 CPU 行为,从而破坏安全性。
该kexec功能可用于引导到新内核。
ACPI 表可以在运行时由 root 加载,在内核中执行 AML。
custom_method可以滥用ACPI直接写入内存。
如果模块签名被禁用,内核模块可以由 root 加载。
kprobes 等调试功能可以修改内核行为。
可以通过使用强化内核(例如正确配置的grsecurity)或使用现在位于上游的内核锁定补丁来进行缓解。当然,仍然有必要防止 root 用户写入内核所在的引导加载程序或引导分区。