То, что вы просите, невозможно. Теоретически , этого можно достигнуть, запустив ядро под пользовательским гипервизором или запустив на нестандартном оборудовании, но это будет крайне Сложно (если не невозможно) достичь в реальности.
Вы не можете защитить ядро от самого себя. В любом обычном сценарии (т.е. без выделенного оборудования или гипервизора) ядро Linux работает на самом высоком уровне привилегий на машине и, следовательно, может отменить любые внесенные вами изменения, если оно того пожелает. Если вашему модулю нужно запретить доступ к какому-либо файлу всему ядру , то в том, что вы делаете, концептуально что-то не так. Более того, вы, похоже, предполагаете, что другие модули ядра будут как-то «заинтересованы» в том, чтобы связываться с вашим модулем: почему это так?
Более того, даже изменение разрешений или переопределение системных вызовов не решает никаких проблем: если вы не правильно не настроите блокировку ядра (ядро> = v5.4) и / или другие меры безопасности, такие как подпись модуля (и в идеале также безопасную загрузку), пользователь root
всегда может вставлять модули и подрывать ваши «меры безопасности».
Если вам нужно лишить root
доступа к этим файлам, то, как я уже сказал, действительно что-то логически неправильно. Пользователь root
уже может делать все, что ему захочется, с любым файлом конфигурации, который он хочет, конечно, уничтожение важных файлов конфигурации приведет к поломке системы, но на самом деле этого нельзя избежать. Предположение, что root
является злом, не имеет особого смысла в качестве модели угрозы в любом нормальном сценарии.