我目前正在升级 Linux LSM(内核 4.3.5)的源代码以兼容最新版本的 Linux 内核。
我已成功更新代码,因此 GCC 编译器成功编译,但内核无法启动。
到目前为止,我还没有在模块定义中使用 LSM MAJOR 标志或 EXCLUSIVE 标志,但是当启动到非工作内核时,SMACK 和 SELinux(取决于选择哪个作为主要)错误输出和在跟踪中提到 kmem_cache_free。我的理解是,由于这个原因,我的 LSM 必须作为遗留的主要和排他性实施。这是因为 SMACK 或 Selinux 不能很好地与我的 LSM 配合使用,就像它们不能互相配合一样?(作为注释 SMACK 和 Selinux 都使用独占和遗留的主要标志)
我正在开发的 LSM 使用 xattrs 将规则保存到 inode,LSM 根据规则为 inode 提供中介。
在我阅读的所有文档中,安全 blob 不断出现,现在我的理解是它们是内核数据结构,如果我只是访问 inode,我应该不需要实现一个?
LSM 确实使用了内核缓存kmem_cache_create()
,SELinux 在其 4.3.5 内核版本中也这样做了,这是一个安全 blob 吗?
回顾一下:
在这种情况下,主要或次要 LSM 的用例是什么?
安全 blob 是否取代了
kmem_cache_create()
?