作为将SELinux移植到Linux嵌入式平台,独立开发SELinux安全策略的技术人员,并不建议关闭SELinux. 如果SElinux策略出现问题,大家最好能够向相应的发行版本SElinux策略开发小组报告,使能更快的修复策略问题,而不是一味得关闭SElinux。
因为SELinux的开发原则是基于最小权限原则。所以很多时候设计人员为程序设计时只会开放应用程序合法使用的权限(我一直在被该不该开权限的问题折磨着...)。所以一旦应用程序更新使用了新的权限,才会被内核以权限不足的原因给干掉(也就是为什么程序会在关闭了selinux就能正常运行的原因了。)。
Linux发行版本都会有一套工具自动修复权限(也就是缺什么权限,补什么权限)。如CentOS:
在Root权限下,安装selinux相关RPM后:
cat /var/log/audit/audit.log | audit2allow -m local > local.te
checkmodule -M -m -l local.mod local.te
semodule_package -o local.pp -m local.mod
就能够增加缺失的权限。(不一定成功,AVC审计信息如果被关闭则无法实现)。但不建议盲目使用这种方法,因为很可能会开启恶意程序的权限。
Linux发行版本都会有一套工具自动修复权限(也就是缺什么权限,补什么权限)。如CentOS:
在Root权限下,安装selinux相关RPM后:
cat /var/log/audit/audit.log | audit2allow -m local > local.te
checkmodule -M -m -l local.mod local.te
semodule_package -o local.pp -m local.mod
就能够增加缺失的权限。(不一定成功,AVC审计信息如果被关闭则无法实现)。但不建议盲目使用这种方法,因为很可能会开启恶意程序的权限。