如何允许自定义应用程序使用 SELinux?

如何允许自定义应用程序使用 SELinux?

我有一个 Go 应用程序,它有一个与用户一起运行的基本 systemd 服务web。 NGiNX 通过反向代理与其通信,并与同一服务器上的 MySQL 数据库通信。 NGiNX 和 MySQL 策略很容易使用 SELinux 设置,但是,我一生都无法让 SELinux 与我的自定义 Go 应用程序一起工作。

我遇到了权限被拒绝的错误,但是当我禁用 SELinux 时,一切都运行得很好,所以我确定它是 SELinux。

关于申请

  1. 打开8080端口
  2. 通过端口 3306 与 MySQL 对话

我尝试过以下RedHat 指导如何配置自定义应用程序,但由于某种原因,我的应用程序始终保持unconfined_t使用sepolicy脚本后的状态。

笔记:这是在 Fedora 36 服务器上。

答案1

我终于解决了。只需将我的自定义二进制文件添加到标签即可bin_t。我使用了这个命令,semanage fcontext -a -t bin_t "/path/to/binary"然后使用了restorecon -v /path/to/binary.然后很快systemctl restart mybinary.service,它似乎就完美地工作了。

httpd_sys_content_t我还使用相同的命令为我的网站添加了静态内容,然后重新加载 NGiNX。

相关内容