2

我目前正在升级 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()?

4

0 回答 0