4.3. 查找用于管理访问非标准目录的正确的 SELinux 类型
如果您需要设置默认 SELinux 策略没有涵盖的访问控制规则,请首先搜索匹配您的用例的布尔值。如果您无法找到合适的布尔值,您可以使用匹配的 SELinux 类型,或甚至创建一个本地策略模块。
先决条件
-
selinux-policy-doc
和setools-console
软件包已安装在您的系统上。
流程
列出所有与 SELinux 相关的主题,并将结果限制到您要配置的组件。例如:
man -k selinux | grep samba
# man -k selinux | grep samba samba_net_selinux (8) - Security Enhanced Linux Policy for the samba_net processes samba_selinux (8) - Security Enhanced Linux Policy for the smbd processes …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在与您的场景对应的手册页中,找到相关的 SELinux 布尔值、端口类型和文件类型。
请注意,只有在安装了
selinux-policy-doc
软件包后,man -k selinux
或apropos selinux
命令才可用。可选: 您可以使用
semanage fcontext -l
命令显示默认位置上进程的默认映射,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
sesearch
命令显示默认 SELinux 策略中的规则。您可以通过列出相应的规则来查找要使用的类型和布尔值,例如:sesearch -A | grep samba | grep httpd
$ sesearch -A | grep samba | grep httpd … allow httpd_t cifs_t:dir { getattr open search }; [ use_samba_home_dirs && httpd_enable_homedirs ]:True …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux 布尔值可能是对您的配置问题的最直接的解决方案。您可以使用
getsebool -a
命令显示所有可用的布尔值及其值,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
sesearch
命令验证所选的布尔值是否正是您想要的,例如:sesearch -A | grep httpd_enable_homedirs
$ sesearch -A | grep httpd_enable_homedirs … allow httpd_suexec_t autofs_t:dir { getattr open search }; [ use_nfs_home_dirs && httpd_enable_homedirs ]:True allow httpd_suexec_t autofs_t:dir { getattr open search }; [ use_samba_home_dirs && httpd_enable_homedirs ]:True …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有布尔值与您的场景匹配,请找到适合您情况的 SELinux 类型。您可以使用
sesearch
,通过从默认的策略中查询相应的规则来查找文件的类型,例如:sesearch -A -s httpd_t -c file -p read
$ sesearch -A -s httpd_t -c file -p read … allow httpd_t httpd_t:file { append getattr ioctl lock open read write }; allow httpd_t httpd_tmp_t:file { append create getattr ioctl link lock map open read rename setattr unlink write }; …
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果前面的解决方案没有涵盖您的场景,您可以在 SELinux 策略中添加自定义规则。如需更多信息,请参阅 创建本地 SELinux 策略模块 部分。