Portal:SELinux/Tools
SELinux 工具
openSUSE 上的许多标准工具可以显示和交互 SELinux 标签。约定是额外的 `-Z` 参数将显示 SELinux 标签/类型信息。
常见示例是
# ls -alZ total 20 drwx------. 1 admin admin system_u:object_r:user_home_dir_t:s0 128 Jun 22 18:32 . dr-xr-xr-x. 1 root root system_u:object_r:home_root_t:s0 10 Jun 22 18:32 .. -rw-------. 1 admin admin system_u:object_r:user_home_t:s0 8 Jun 22 19:16 .bash_history -rw-r--r--. 1 admin admin system_u:object_r:user_home_t:s0 604 Jun 15 04:50 .bashrc
# ps auxZ LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 root 1232 200 0.1 8360 3584 pts/0 R+ 16:43 0:00 ps auxZ
此外,SELinux 还有一些专用工具,用于查看拒绝(当一种类型被拒绝访问另一种类型时)、创建策略以及选择性地启用或禁用策略。
您可以使用 `zypper in policycoreutils setools-console` 确保已安装这些工具
ausearch
ausearch 是审计搜索工具。这允许您查询审计日志以显示匹配某些条件的拒绝。这可能提示您采取措施来解决问题。
要显示自启动以来的所有拒绝
ausearch -ts boot -m avc
要显示来自时间戳的拒绝。如果当前时间是 16:20:00,我们可以使用以下命令显示过去 5 分钟的列表
ausearch -ts 16:15:00 -m avc
semanage
`semanage` 允许更改当前策略在运行系统上的某些元素。一些常见用途是
列出所有可用的策略布尔可调参数。启用其中一些参数可能会解决您遇到的问题,而无需编写自定义策略模块
semanage boolean -l
列出所有已被置于宽容模式中的类型/进程。与其将 SELinux 设置为宽容模式,不如可以临时将单个类型/进程设置为宽容模式以进行分析。
semanage permissive -l # put a single type into permissive mode semanage permissive -a type semanage permissive -a httpd_t # remove that type from permissive mode to enforcing semanage permissive -d type semanage permissive -d httpd_t
semodule
semodule 允许动态加载 SELinux 策略模块。它还具有一个有用的功能,可以允许审计某些违规行为,否则这些违规行为将被隐藏。SELinux 具有 `dontaudit` 规则的概念,该规则可以防止记录特定违规行为。默认情况下,许多无害的违规行为通常被标记为 `dontaudit`,以防止它们使日志混乱。但是,有时这些隐藏的违规行为对于理解问题非常重要。
要禁用 `dontaudit` 规则并在审计日志中记录所有违规行为
semodule -DB
要重新启用 `dontaudit` 规则,以便隐藏无害的违规行为
semodule -B