4.3. 查找用于管理对非标准目录的访问的正确 SELinux 类型


如果您需要设置默认 SELinux 策略没有涵盖的访问控制规则,请首先搜索与您的用例匹配的布尔值。如果您无法找到合适的布尔值,您可以使用匹配的 SELinux 类型甚至创建本地策略模块。

先决条件

  • selinux-policy-docsetools-console 软件包已安装在您的系统中。

步骤

  1. 列出所有与 SELinux 相关的主题,并将结果限制为您要配置的组件。例如:

    # 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 Toggle word wrap

    在与您的场景对应的 man page 中,找到相关的 SELinux 布尔值、端口类型和文件类型。

    请注意,只有安装 selinux-policy-doc 软件包后,man -k selinuxapropos selinux 命令才可用。

  2. 可选:您可以使用 semanage fcontext -l 命令显示默认位置上进程的默认映射,例如:

    # semanage fcontext -l | grep samba
    …
    /var/cache/samba(/.*)?                             all files          system_u:object_r:samba_var_t:s0
    …
    /var/spool/samba(/.*)?                             all files          system_u:object_r:samba_spool_t:s0
    …
    Copy to Clipboard Toggle word wrap
  3. 使用 sesearch 命令显示默认 SELinux 策略中的规则。您可以通过列出对应的规则来查找要使用的类型和布尔值,例如:

    $ 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 Toggle word wrap
  4. SELinux 布尔值可能是您的配置问题最直接的解决方案。您可以使用 getsebool -a 命令显示所有可用的布尔值及其值,例如:

    $ getsebool -a | grep homedirs
    git_cgi_enable_homedirs --> off
    git_system_enable_homedirs --> off
    httpd_enable_homedirs --> off
    mock_enable_homedirs --> off
    mpd_enable_homedirs --> off
    openvpn_enable_homedirs --> on
    ssh_chroot_rw_homedirs --> off
    Copy to Clipboard Toggle word wrap
  5. 您可以使用 sesearch 命令验证所选布尔值是否准确执行所需的内容,例如:

    $ 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 Toggle word wrap
  6. 如果没有与您的场景匹配,则找到适合您问题单的 SELinux 类型。您可以使用 sesearch 从默认策略查询对应的规则来查找您的文件类型,例如:

    $ 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 Toggle word wrap
  7. 如果前面的解决方案没有满足您的场景,您可以在 SELinux 策略中添加自定义规则。如需更多信息 ,请参阅创建本地 SELinux 策略模块 部分。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat