然而,其中一个副作用是Linux认为(有点正确)它有几千(~15-20k)用户.我们已经看到了几个似乎与SELinux相关的问题(其中一个是https://serverfault.com/questions/236419/usr-bin-install-hangs-apparently-due-to-selinux).其他一些问题包括:
> dmesg反复报道,restorcon被oom-killer杀死
>在某些服务器上启动需要很长时间 – 这发生在内核加载之后,显然是在读取卷组期间,同时也是在运行restorecon启动脚本时.
> yum update挂起(类似于关于mmap / munmap的my SELinux/GNU ‘install’问题的行为)
我们在许可模式下看到了SELinux的这些问题.当我们完全禁用SELinux时,它们会消失.禁用SELinux是一种选择.我还在研究如何使用OU或组限制AD向Linux提供的用户数量.但是我的书呆子总是想知道更多.
所以这是一个非常广泛的问题 – 但任何人都有任何建议与大量用户打交道SELinux?我对SELinux并不是特别熟悉 – 但这可能是学习的机会.
解决方法
这里的“修复”是将旧的/etc/selinux/targeted/contexts/files/file_contexts.homedirs重命名为其他内容.创建一个新的(通常包含几个通用正则表达式,您可以在原始文件的顶部找到),然后将该文件设置为不可变,以便策略重写器不重新生成文件(这在新的selinux策略时会发生-targeted rpm已部署).
这样可以防止你得到的cpu咀嚼.
您的问题发生是因为restorecond打开此文件作为扫描用户目录中文件的参考,必须始终保护文件不受无效文件标签更改的影响.但由于您的文件包含数千个条目,因此扫描会占用大量cpu.
我怀疑在创建库时从未考虑过这个问题,并且可能需要从SELinux端重新考虑.但就目前而言 – ‘修复’应该有效.