为什么我会得到;“不允许操作”;在尝试安装Linux内核模块时?
我在尝试运行一段非常简单的代码时遇到了一些问题,无法找到原因 我越来越 不允许操作 尝试从为什么我会得到;“不允许操作”;在尝试安装Linux内核模块时?,linux,linux-kernel,Linux,Linux Kernel,我在尝试运行一段非常简单的代码时遇到了一些问题,无法找到原因 我越来越 不允许操作 尝试从.ko文件(ko_名称)安装Linux内核模块时 这是代码的摘录: if (strcmp(argv[1], "-init")==0) { fd=open(KO_NAME, O_RDONLY|O_CLOEXEC); if (fd<0) { perror("Error"); printf("Error number: %d\n", errno); } el
.ko
文件(ko_名称)安装Linux内核模块时
这是代码的摘录:
if (strcmp(argv[1], "-init")==0) {
fd=open(KO_NAME, O_RDONLY|O_CLOEXEC);
if (fd<0) {
perror("Error");
printf("Error number: %d\n", errno);
} else {
printf("fd: %d\n", fd);
}
uid=getuid();
if (uid!=ROOT_UID) {
printf("Error: not root\n");
return -1;
}
if (access(KO_NAME, F_OK)==-1) {
printf("Error: File \"%s\" doesn't exist\n", argv[2]);
return -1;
}
rc=syscall(__NR_finit_module, fd, "", 0);
close(fd);
if (rc!=0) {
perror("Error");
printf("rc=%d\n", rc);
printf("Error number: %d\n", errno);
}
为什么我会出现错误1号
不允许操作
我在安装Linux内核时也出现了“不允许操作”错误。我正在运行Sophos Anti-Virus,它有一个已知的bug
为了解决这个问题,我在每次Linux内核安装之前禁用sophos av,并在每次安装之后启用它。我只在Linux内核安装期间遇到过这个问题,而不是在普通更新期间
sudo/opt/sophos av/bin/savdctl disable
运行更新管理器并安装Linux内核
默认情况下,sudo/opt/sophos av/bin/savdctl enable只能由root用户访问内核模块。
因此,在insmod
之后,您必须使用root用户打开设备文件
因此,您必须使用sudo
打开文件。您是否尝试过/sbin/insmod
?可能是modue文件不适合您的内核。仅供参考:该系统调用有finit_module()
包装器,请参阅。
fd: 3
rc=-1
Error number: 1