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