4.6. 布尔值
布尔值允许在运行时更改 SELinux 策略的部分,而不必知晓 SELinux 策略的编写。这允许更改,例如允许服务访问 NFS 卷,而无需重新加载或重新编译 SELinux 策略。
4.6.1. 列出布尔值 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
对于布尔值列表,请说明每个布尔值是什么,以及是否以 Linux root 用户身份运行 semanage boolean -l 命令。以下示例没有列出所有布尔值,输出会为了简洁而缩短:
注意
要获得更详细的描述,请安装 selinux-policy-devel 软件包。
SELinux 布尔值 列列出了布尔值名称。Description 列列出了布尔值是 on 或 off,以及它们的功能。
getsebool -a 命令列出布尔值,无论是 on 还是 off,但不为每个布尔值提供描述。以下示例没有列出所有布尔值:
getsebool -a cvs_read_shadow --> off daemons_dump_core --> on
~]$ 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
cvs_read_shadow --> off
使用空格分隔列表列出多个布尔值:
getsebool cvs_read_shadow daemons_dump_core cvs_read_shadow --> off daemons_dump_core --> on
~]$ 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. 配置布尔值
- 默认情况下,
httpd_can_network_connect_db布尔值为 off,防止 Apache HTTP 服务器脚本和模块连接到数据库服务器:getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> off
~]$ getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> offCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要临时启用 Apache HTTP 服务器脚本和模块来连接到数据库服务器,以 root 用户身份输入以下命令:
setsebool httpd_can_network_connect_db on
~]# setsebool httpd_can_network_connect_db onCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用
getsebool工具验证布尔值是否已启用:getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> on
~]$ getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这允许 Apache HTTP 服务器脚本和模块连接到数据库服务器。 - 此更改在重新启动后不会保留。要使更改在重启后保留,请以 root 用户身份运行 setsebool -P boolean-name on 命令:[3]
setsebool -P httpd_can_network_connect_db on
~]# setsebool -P httpd_can_network_connect_db onCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6.3. Shell 自动完成 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
可以通过
getsebool、setsebool 和 semanage 实用程序使用 shell 自动完成功能。使用带有 getsebool 和 setsebool 的自动完成功能,以完成命令行参数和布尔值。要只列出命令行参数,请在命令名称后添加连字符("-")并按 Tab 键:
setsebool -[Tab] -P
~]# 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
~]$ 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
~]# 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 [Tab]
boolean export import login node port
dontaudit fcontext interface module permissive user
然后,一个或多个命令行参数如下:
最后,完成特定 SELinux 条目的名称,如布尔值、SELinux 用户、域或其他条目。开始输入条目并按 Tab 键:
命令行参数可以链接到命令中:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
semanage port -a -t http_port_t -p tcp 81
~]# 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 命令。