我试图在运行 CentOS 7 的虚拟机上部署 Nagios,和大多数人一样,遇到了“无法 stat() nagios.cmd”问题。我确实为用户 apache 和 nagios 设置了访问文件的权限,现在正在与 SELinux 斗争,以允许 apache 和 nagios 修改命令文件。明显的问题是,Nagios 被安装到了/usr/local/nagios
而不是/usr/lib/nagios
根据内容,这似乎是 Nagios 的预定义位置/etc/selinux/targeted/contexts/files/file_contexts
。目前,Apache 进程已经作为 运行httpd_t
,而 Nagios 进程在(默认由 init 启动)上下文下运行initrc_t
。当前文件夹设置是system_u:object_r:usr_t:s0
上下文下的所有文件,从 开始/usr/local/nagios
并在下面。
因此,我想知道,关于 Nagios 文件,我应该在哪里设置什么上下文(用户、角色、类型),这样我就可以安全地启用 SELinux,而不会遇到 Nagios 无法启动或 Apache 无法修改命令文件的情况?