我打算使用“强制”selinux 模式。首先,我以宽容模式启动(内核命令行中的 enforcing=0)。登录系统后,我从 auditd 日志中收集所有违反 selinux 策略的行为,并尝试创建 selinux 模块以允许此类操作,但出现“neverallow 违反”
root@amalthea:~# ausearch -m avc > ausearch.result
root@amalthea:~# cat ausearch.result | audit2allow -M local
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i local.pp
root@amalthea:~# semodule -v -i local.pp
Attempting to install module 'local.pp':
Ok: return value of 0.
Committing changes:
libsepol.check_assertion_helper: neverallow violated by allow system_dbusd_t shadow_t:file { read };
libsemanage.semanage_expand_sandbox: Expand module failed
semodule: Failed!
如果当前政策没有任何“不允许”的规定,那么这种情况怎么会发生?
root@amalthea:~# seinfo | egrep -i 'constraints|neverallow'
Allow: 55455 Neverallow: 0
Constraints: 137 Validatetrans: 0
提前致谢
更新1 我安装了带有 selinux 策略的源包,并在其中找到了“neverallow”。但我不明白为什么“seinfo”说当前策略中没有 neverallow。
root@amalthea:~# seinfo | egrep -i 'constraints|neverallow'
Allow: 55455 Neverallow: 0
Constraints: 137 Validatetrans: 0