4.6. 布尔值


布尔值允许在运行时更改 SELinux 策略的部分,而不必知晓 SELinux 策略的编写。这允许更改,例如允许服务访问 NFS 卷,而无需重新加载或重新编译 SELinux 策略。

4.6.1. 列出布尔值

对于布尔值列表,请说明每个布尔值是什么,以及是否以 Linux root 用户身份运行 semanage boolean -l 命令。以下示例没有列出所有布尔值,输出会为了简洁而缩短:
~]# semanage boolean -l
SELinux boolean                State  Default Description


smartmon_3ware                 (off  ,  off)  Determine whether smartmon can...
mpd_enable_homedirs            (off  ,  off)  Determine whether mpd can traverse...
注意
要获得更详细的描述,请安装 selinux-policy-devel 软件包。
SELinux 布尔值 列列出了布尔值名称。Description 列列出了布尔值是 on 或 off,以及它们的功能。
getsebool -a 命令列出布尔值,无论是 on 还是 off,但不为每个布尔值提供描述。以下示例没有列出所有布尔值:
~]$ getsebool -a
cvs_read_shadow --> off
daemons_dump_core --> on
运行 getsebool boolean-name 命令,仅列出 boolean-name 布尔值的状态:
~]$ getsebool cvs_read_shadow
cvs_read_shadow --> off
使用空格分隔列表列出多个布尔值:
~]$ getsebool cvs_read_shadow daemons_dump_core
cvs_read_shadow --> off
daemons_dump_core --> on

4.6.2. 配置布尔值

setsebool boolean_name on/off 形式运行 setsebool 工具,以启用或禁用布尔值。
以下示例演示了配置 httpd_can_network_connect_db 布尔值:

过程 4.5. 配置布尔值

  1. 默认情况下,httpd_can_network_connect_db 布尔值为 off,防止 Apache HTTP 服务器脚本和模块连接到数据库服务器:
    ~]$ getsebool httpd_can_network_connect_db
    httpd_can_network_connect_db --> off
    
  2. 要临时启用 Apache HTTP 服务器脚本和模块来连接到数据库服务器,以 root 用户身份输入以下命令:
    ~]# setsebool httpd_can_network_connect_db on
  3. 使用 getsebool 工具验证布尔值是否已启用:
    ~]$ getsebool httpd_can_network_connect_db
    httpd_can_network_connect_db --> on
    
    这允许 Apache HTTP 服务器脚本和模块连接到数据库服务器。
  4. 此更改在重新启动后不会保留。要使更改在重启后保留,请以 root 用户身份运行 setsebool -P boolean-name on 命令:[3]
    ~]# setsebool -P httpd_can_network_connect_db on

4.6.3. Shell 自动完成

可以通过 getseboolsetseboolsemanage 实用程序使用 shell 自动完成功能。使用带有 getseboolsetsebool 的自动完成功能,以完成命令行参数和布尔值。要只列出命令行参数,请在命令名称后添加连字符("-")并按 Tab 键:
~]# setsebool -[Tab]
-P
要完成布尔值,请开始编写布尔值,然后按 Tab 键:
~]$ getsebool samba_[Tab]
samba_create_home_dirs   samba_export_all_ro      samba_run_unconfined
samba_domain_controller  samba_export_all_rw      samba_share_fusefs
samba_enable_home_dirs   samba_portmapper         samba_share_nfs
~]# setsebool -P virt_use_[Tab]
virt_use_comm     virt_use_nfs      virt_use_sanlock
virt_use_execmem  virt_use_rawip    virt_use_usb
virt_use_fusefs   virt_use_samba    virt_use_xserver
semanage 工具与多个命令行参数一起使用,这些参数逐一完成。semanage 命令的第一个参数是一个选项,它指定 SELinux 策略管理哪些部分:
~]# semanage [Tab]
boolean     export      import      login       node        port
dontaudit   fcontext    interface   module      permissive  user
然后,一个或多个命令行参数如下:
~]# semanage fcontext -[Tab]
-a           -D           --equal      --help       -m           -o
--add        --delete     -f           -l           --modify     -S
-C           --deleteall  --ftype      --list       -n           -t
-d           -e           -h           --locallist  --noheading  --type
最后,完成特定 SELinux 条目的名称,如布尔值、SELinux 用户、域或其他条目。开始输入条目并按 Tab 键:
~]# semanage fcontext -a -t samba<tab>
samba_etc_t                     samba_secrets_t
sambagui_exec_t                 samba_share_t
samba_initrc_exec_t             samba_unconfined_script_exec_t
samba_log_t                     samba_unit_file_t
samba_net_exec_t
命令行参数可以链接到命令中:
~]# semanage port -a -t http_port_t -p tcp 81


[3] 要临时恢复到默认行为,以 Linux root 用户身份运行 setsebool httpd_can_network_connect_db off 命令。对于在重启后保留的更改,请运行 setsebool -P httpd_can_network_connect_db off 命令。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.