![为什么selinux拒绝从default_t启动服务?](https://linux22.com/image/115360/%E4%B8%BA%E4%BB%80%E4%B9%88selinux%E6%8B%92%E7%BB%9D%E4%BB%8Edefault_t%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
创建了一个新的顶级目录,并获得了新顶级目录的默认标签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/shm
(tmpfs_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
.