麒麟OS中遇“完整性校验失败”等提示,需针对性关闭KYSEC文件保护或内核IMA/EVM机制:临时关文件保护用sudo kysecctl --file-protect off;永久关则改/etc/kysec/kysec.conf中file_protect=off并清缓存重启服务;关IMA/EVM需在GRUB参数加ima_appraise=off evm=off后更新并重启。

您在麒麟OS中执行系统更新、内核模块加载或关键配置修改时,遇到“完整性校验失败”“签名不匹配”“KYSEC拒绝加载”等提示,说明系统完整性保护机制(基于KYSEC的IMA/EVM或文件签名验证)正在拦截操作。该机制默认启用,需针对性关闭对应子模块才能绕过校验。
确认当前完整性保护状态
打开终端,执行:getstatus | grep -E "(ima|evm|integrity)"。若输出含“ima_status: enabled”“evm_status: enabled”或“integrity_check: on”,则完整性校验已激活。注意:仅运行getstatus无法显示EVM状态,必须加grep过滤,否则容易误判为未启用。
关闭KYSEC文件完整性校验(推荐首选)
该操作禁用KYSEC框架对系统二进制、配置文件的实时签名比对,不影响其他安全子功能。
方法一:命令行临时关闭
执行:sudo kysecctl --file-protect off。此操作立即生效,但重启后恢复。
方法二:永久禁用并清除策略缓存
1、编辑KYSEC主配置:sudo vim /etc/kysec/kysec.conf
2、将file_protect=on改为file_protect=off,【必须删除该行末尾所有空格及不可见字符,否则服务启动失败】
3、清空已加载的完整性策略:sudo kysecctl --clear-integrity-cache
4、重启服务:sudo systemctl restart kysec
停用内核级IMA/EVM完整性度量(需重启)
适用于需加载未签名内核模块(如自研驱动)、或部署定制initramfs的场景。此操作直接关闭Linux内核内置的完整性子系统。
第一步:修改GRUB引导参数
1、开机时在银河麒麟Logo出现前反复按Shift调出GRUB菜单
2、高亮默认启动项,按e进入编辑模式
3、找到以linux开头的行,在其末尾空格后添加:ima_appraise=off evm=off
4、按Ctrl+X启动临时生效内核
第二步:永久写入GRUB配置
1、执行:sudo vim /etc/default/grub
2、找到GRUB_CMDLINE_LINUX行,在引号内已有参数后追加 ima_appraise=off evm=off(注意前面留一个空格)
3、更新GRUB:sudo update-grub
4、重启系统,执行dmesg | grep -i ima,若无“IMA: initializing”日志即表示已关闭
解除特定目录的EVM签名强制绑定
当仅需对/opt/myapp或/usr/local/bin等自定义路径绕过校验时,可单独移除EVM扩展属性,避免全局关闭带来的安全降级。
执行:sudo evmctl import --hash /etc/keys/x509_ima.der → sudo setfattr -x security.evm /path/to/target/dir。注意:【必须先导入密钥再清除EVM属性,否则会报错Operation not supported】。清除后对该目录下新建或修改的文件不再触发EVM校验,但原已签名文件仍保留完整性标记。

















