security - 如何在 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);
解决方案
struct security_hook_list
这些天我想你可能想看看security_add_hooks()
推荐阅读
- linux - Linux 调节器用户空间消耗驱动程序:sysfs 下的缺失状态
- javascript - 根据动态键对数组项进行分组
- firebase - firebase 函数未以 response.send 终止
- python - bs4 不会从 worldometers 中抓取中国的电晕数据
- c - 在C中比较无符号与有符号(int和short)
- codeigniter-4 - Codeigniter 4 设置输出压缩
- pandas - 如何根据同一列中的另一个值更新列中的值,其中两行在另一列中具有相同的值?
- javascript - 如何使usestate恢复默认值
- powershell - “帮助”命令在我的 Windows PowerShell 中不起作用
- reactjs - React - 使用路由器时状态值有时会出错