要写一个安全模块,先读一个安全模块做参考,由于 smack 最简单,所以读 smack。
一. 了解 smack 的基本使用
可以参考 ubuntu 社区的 Smack configuration ,内容没有太大问题,但是逻辑混乱,也可以参考 强制访问控制内核模块Smack 。
二. Linux Security Module
linux 内核的安全模块并不是可加载的模块,而必须是内建模块。首先在内核启动的时候,通过命令行参数 "security=..." 来决定调用哪个模块(smack 或者 apparmor,等等)。
通过 register_security 来注册安全模块。
三. Security Operations Hooks
四. Init
smack 的 init 非常简单,大致如下:
1. enable security module
2. new a task_smack
3. init smack known list
4. register security operations