SELinux 是强制访问控制的一种形式,其中使用一组标签来控制进程可以做什么或不能做什么。Linux 上涉及ugo
权限的默认访问控制方法是自由决定的——它让用户自行决定实际确定哪些权限应该去哪里。使用 SELinux 的强制访问控制的一个“问题”是应用程序有时会拒绝按您希望的方式工作,原因显然很神秘。
我们以rsyslog
守护进程为例。下面的目录和文件/var/log
有正确的 SELinux 标签可以使用rsyslog
。但是,如果您尝试在系统的其他位置定义日志文件,例如/opt
,rsyslog
将无法写入该文件,因为该文件上的 SELinux 上下文错误。由于访问控制是强制性的,即使您777
在新日志文件上设置权限,也会发生这种情况。在这种特定情况下,可以使用chcon
. 但是等等,这些上下文将在下一次重新标记文件系统时丢失。所以你真正需要的是semanage fcontext
.
正如我试图用上面的例子说明的那样,SELinux 具有很强的学习曲线。即使您了解了其工作原理的基础知识,您仍然需要使用大量命令(semanage
、sestatus
、sealert
、chcon
、restorecon
、audit2allow
)来实现预期的结果。即便如此,文档有时也会让您对自己出错的地方感到困惑。
鉴于实际使用 SELinux 的挑战,大多数人只是发现禁用它是一个更方便的选择。事实上,U&L 上 SELinux 标签下投票最高的问题是关于禁用 SELinux。
还有一点需要注意的是,与 Red Hat 相关的发行版启用了 SELinux(Fedora、RHEL 及其衍生产品)。这些系统附带的 SELinux 策略已经足够好,以至于很多人通常不会注意到他们系统上运行的 SELinux。
归档时间: |
|
查看次数: |
194 次 |
最近记录: |