为什么selinux拒绝从default_t启动服务?

为什么selinux拒绝从default_t启动服务?

创建了一个新的顶级目录,并获得了新顶级目录的默认标签default_t.

如果 ExecStart 是在新的顶级目录 ( /ansible-managed/) 中创建的程序,SELinux 将拒绝启动服务。

这种否认有目的吗?

sealert 建议允许使用以下任何标签:

  • bin_t
  • 启动_t
  • etc_runtime_t
  • 等_t
  • 初始化状态_t
  • ld_so_t
  • 库_t
  • 源代码
  • 系统控制
  • 系统数据库t
  • 文本rel_shlib_t
  • tmpfs_t
  • usr_t
  • var_run_t

因此我们可以排除它阻止某人从用户可写位置(如/dev/shmtmpfs_t))运行守护程序的可能性。


SELinux 策略:selinux-policy-targeted-3.13.1-225.18.fc25.noarch

答案1

SELinux 策略的存在是为了定义系统中允许的策略。当您使用通用标签创建一些不同的文件时,该策略非常宽松,但可以防止一些潜在的威胁。

唯一的威胁不是从 运行某些内容/dev/shm,但从潜在的用户可写目录运行某些内容可能非常危险(特别是在守护进程作为 root 运行的情况下,不是吗?)。

一般来说,Fedora 中的所有新服务/守护进程都需要有一些 SELinux 策略,以便 SELinux 至少对它们有一定的控制权。如果这是一些长期服务,我建议您这样做。

如果它应该是临时服务,只需为其分配一些通用bin_t标签即可。或者将二进制文件安装到/opt/your-path/(s)bin/并可能调整策略以在目录树中正确获取标签。

答案2

因此我们可以排除它阻止某人从用户可写位置(如 /dev/shm (tmpfs_t))运行守护程序的可能性。

错误的。

/dev/shm/ 被标记为tmpfs_t,但是当用户在其中创建文件时/dev/shm/被标记为user_tmp_t.

相关内容