首页 > 解决方案 > 如何在 linux-kernel 4.18 上使用 register_security 注册安全模块?

问题描述

目前,我正在尝试注册一个带有打开系统调用文件的钩子的 linux 安全模块。我似乎在任何地方都找不到 register_security 函数。有人可以告诉我它在哪里,是否仍然可以做这样的钩子。

这是我尝试过的。


#include <linux/module.h>    // included for all kernel modules
#include <linux/kernel.h>    // included for KERN_INFO
#include <linux/init.h>      // included for __init and __exit macros
#include <linux/security.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/lsm_hooks.h>

MODULE_LICENSE("GPL");


extern struct security_operations *security_ops;

int acl_file_open(struct file *file) {
    if (!file)
        return -1;

    printk(KERN_INFO "Ouverture de : %s", file->name);
    return 0;
}

static struct security_operations acl_ops = {
    .file_open = acl_file_open
};

static int __init acl_init(void)
{
    printk(KERN_INFO "Initialisation du module ACL...\n");

    if (register_security(&acl_ops)) {
        printk(KERN_INFO "Impossible de charger le module ACL\n");
        return 1;
    }

    printk(KERN_INFO "Module ACL charge\n");

    return 0;    // Non-zero return means that the module couldn't be loaded.
}

static void __exit acl_cleanup(void)
{
    printk(KERN_INFO "Cleaning up module.\n");
}

module_init(acl_init);
module_exit(acl_cleanup);

标签: securitylinux-kernelhooksystem-callslinux-security-module

解决方案


struct security_hook_list这些天我想你可能想看看security_add_hooks()


推荐阅读