主板上有一个附加设备,NTP
服务尝试从中读取数据(附加设备链接位于/dev
目录中)。使用 SELinux 时enforcing
,服务状态错误表明它没有权限访问设备。将 SELinux 设置为disabled
可以解决问题,但这不是标准方法。
我知道有人应该在这种情况下制定新的 SELinux 策略。假设NTP
服务尝试读取/dev/gps0
,有人可以举例说明如何为此编写 SELinux 规则吗?
答案1
一般来说,在处理 RHEL/CentOS 发行版中包含的 SELinux 和标准服务时,您应该首先阅读相应的<servicename>_selinux
手册页。
在这种情况下,至少在 RHEL 7 上,ntpd 的 SELinux 策略包括 SELinux 文件类型标签,这表明该策略可能具有通过 与 GPS 设备通信的gpsd_tmpfs_t
内置支持。设置然后在它之间进行通信可能是在使用 GPS 设备时保持最严格的 SELinux 策略的方法。ntpd
gpsd
gpsd
ntpd
ntpd
或者,您可以使用semanage permissive -a ntpd_t
将 SELinux 切换到宽容模式为了 ntpd
仅过程。
当处于宽容模式时,您可以在审核日志中找到引用 /dev/gps0 或 /dev/ttyUSB0 的消息(请参阅 参考资料/var/log/audit
)并将它们提供给该audit2allow
工具。它应该告诉您允许 ntpd 直接访问 GPS 设备所需的确切 SELinux 策略更改。