24.5. 对 systemd 无法加载 IMA 策略的故障排除


如果 systemd 没有加载 /etc/ima/ima-policy,系统挂起并显示错误 systemd[1]: Freezing execution

[    5.829882] ima: policy update failed
[    5.830094] ima: signed policy file (specified as an absolute pathname) required
[!!!!!!] Failed to load IMA policy.
…
[    5.859994] systemd[1]: Freezing execution.
Copy to Clipboard Toggle word wrap

您可以使用三种方法来恢复您的系统。

24.5.1. 关闭安全引导

如果因为未签名策略而无法加载策略,您可能会看到类似以下示例的错误。

[    5.661906] ima: policy update failed
[    5.662290] ima: signed policy file (specified as an absolute pathname) required
[    5.662496] systemd[1]: Failed to load the IMA custom policy file /etc/ima/ima-policy1: Permission denied
[    5.662663] ima: policy update failed
[    5.662856] audit: type=1800 audit(1744968172.925:7): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 op=appraise_data cause=IMA-signature-required comm="systemd" name="/etc/ima/ima-policy" dev="vda3" ino=25679834 res=0 errno=0
[    5.663205] audit: type=1802 audit(1744968172.925:8): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 op=policy_update cause=failed comm="systemd" res=0 errno=0
[!!!!!!] Failed to load IMA policy.
Copy to Clipboard Toggle word wrap

作为临时解决方案,您可以临时关闭安全引导,并遵循 为 UEFI 系统部署自定义签名的 IMA 策略 来解决这个问题。

24.5.2. 使用 init=/bin/bash 内核参数引导系统

要使用 init=/bin/bash 内核参数引导系统,您可以使用以下步骤:

  1. 修改 bootloader 条目并添加 init=/bin/bash 内核参数。
  2. 访问 shell 后,使用写权限重新挂载系统:

    # mount -o remount,rw /
    Copy to Clipboard Toggle word wrap
  3. /etc/ima/ima-policy 重命名为 /etc/ima/ima-policy.bak

    # mv /etc/ima/ima-policy /etc/ima/ima-policy.bak
    Copy to Clipboard Toggle word wrap
  4. 重启系统:

    # echo 1 > /proc/sys/kernel/sysrq
    # printf "s\nb" > /proc/sysrq-trigger
    Copy to Clipboard Toggle word wrap
  5. 解决 /etc/ima/ima-policy.bak 中的任何问题,并验证是否可以载入该策略:

    # echo /etc/ima/ima-policy.bak >> /sys/kernel/security/integrity/ima/policy
    Copy to Clipboard Toggle word wrap
  6. /etc/ima/ima-policy.bak 重命名为 /etc/ima/ima-policy:

    # mv /etc/ima/ima-policy.bak /etc/ima/ima-policy
    Copy to Clipboard Toggle word wrap

如果系统挂起并显示错误 systemd[1]: Freezing execution,您可以使用 initcall_blacklist=init_ima 内核参数引导系统,以禁用 IMA 策略。

  1. 修改引导装载程序条目并添加 initcall_blacklist=init_ima 内核参数。
  2. /etc/ima/ima-policy 重命名为 /etc/ima/ima-policy.bak

    # mv /etc/ima/ima-policy /etc/ima/ima-policy.bak
    Copy to Clipboard Toggle word wrap
  3. 重启系统:

    # systemctl reboot
    Copy to Clipboard Toggle word wrap
  4. 解决 /etc/ima/ima-policy.bak 中的任何问题,并验证是否可以载入该策略:

    # echo /etc/ima/ima-policy.bak >> /sys/kernel/security/integrity/ima/policy
    Copy to Clipboard Toggle word wrap
  5. /etc/ima/ima-policy.bak 重命名为 /etc/ima/ima-policy:

    # mv /etc/ima/ima-policy.bak /etc/ima/ima-policy
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat