介绍3个SELinux sestatus 命令输出示例及说明

举报
Tiamo_T 发表于 2021/10/12 13:23:52 2021/10/12
【摘要】 sestatus 表示 SELinux 状态,此命令用于查看系统上正在运行的 SELinux 的当前状态。大家好,本文将解释了以下内容:sestatus 命令输出详解在 sestatus 中显示选定对象的安全上下文在 sestatus 中显示布尔值1. sestatus 命令输出解释sestatus 命令将显示 SELinux 是启用还是禁用。这还将显示有关此处解释的某些 SELinux 设...

sestatus 表示 SELinux 状态,此命令用于查看系统上正在运行的 SELinux 的当前状态。

大家好,本文将解释了以下内容:

  1. sestatus 命令输出详解
  2. 在 sestatus 中显示选定对象的安全上下文
  3. 在 sestatus 中显示布尔值


1. sestatus 命令输出解释

sestatus 命令将显示 SELinux 是启用还是禁用。这还将显示有关此处解释的某些 SELinux 设置的附加信息。

以下是 CentOS 7 系统上的 sestatus 命令。在旧版本的 CentOS / RedHat 上,此输出会略有不同。

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

注意:在上面的输出中,“current mode”是你应该注意的最重要的一行,下面解释。


SELinux 状态:这表明 SELinux 模块本身在您的系统上是启用还是禁用。请记住,即使这可能说已启用,但 SELinux 可能仍然没有在技术上启用(强制执行),这实际上由下面解释的“当前模式”行指示。

SELinuxfs 挂载:这是 SELinux 临时文件系统挂载点。这是 SELinux 内部使用的。如果您尝试在这个 SELinux 文件系统上执行 ls,这就是您所要做的。出于我们的实际目的,我们无法操作此目录中的任何内容,因为它是由 SELinux 内部管理的。

# ls -l /sys/fs/selinux
total 0
-rw-rw-rw-.  1 root root    0 Jun  4 22:16 access
dr-xr-xr-x.  2 root root    0 Jun  4 22:16 avc
dr-xr-xr-x.  2 root root    0 Jun  4 22:16 booleans
-rw-r--r--.  1 root root    0 Jun  4 22:16 checkreqprot
..
..
-r--r--r--.  1 root root    0 Jun  4 22:16 policy
-rw-rw-rw-.  1 root root    0 Jun  4 22:16 relabel
-r--r--r--.  1 root root    0 Jun  4 22:16 status
-rw-rw-rw-.  1 root root    0 Jun  4 22:16 user

SELinux 根目录:这是所有 SELinux 配置文件所在的位置。默认情况下,您将看到以下文件和目录。该目录包含 SELinux 操作所需的所有配置文件。您可以修改这些文件。

# ls -l /etc/selinux
total 8
-rw-r--r--. 1 root root  546 May  1 19:08 config
drwx------. 2 root root    6 May  1 19:09 final
-rw-r--r--. 1 root root 2321 Jan 17 18:33 semanage.conf
drwxr-xr-x. 7 root root  215 May  1 19:09 targeted
drwxr-xr-x. 2 root root    6 Jan 17 18:33 tmp

加载的策略名称:这将指示当前加载的 SELinux 策略的类型。在几乎所有常见情况下,您都会看到 SELinux 策略中的“targeted”,因为这是默认策略。以下是可用的 SELinux 策略:

  • 目标 – 这意味着只有目标进程受 SELinux 保护
  • 最低限度——这是对目标政策的轻微修改。在这种情况下,只有少数选定的进程受到保护。
  • mls – 这是用于多级安全保护。MLS 非常复杂,在大多数情况下几乎不使用。

当前模式:这表明 SELinux 当前是否正在执行策略。换句话说,从技术上讲,这将告诉您 SELinux 当前是否已启用并在您的系统上运行。

以下是可能的 SELinux 模式:

  • enforcing – 这表明 SELinux 安全策略被强制执行(即 SELinux 已启用)
  • permissive – 这表示 SELinux 打印警告而不是强制执行。当您想通过查看 SELinux 日志了解 SELinux 可能会阻止(而不是真正阻止它)什么时,这在调试期间很有用。
  • 禁用 - 未加载 SELinux 策略。

就我们的实际目的而言,强制执行等于启用。permissive 和 disabled 等于 disabled。

Policy MLS status 指示 MLS 策略的当前状态。默认情况下,这将启用。

策略 deny_unknown 状态指示我们策略中 deny_unknown 标志的当前状态。默认情况下,这将设置为允许。

Max kernel policy version 表示我们的 SELinux 策略的当前版本。在本例中,它是版本 28。

以下是在 CentOS 和 RedHat 6 上 sestatus 的输出。

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

2. 在 sestatus 中显示 Selected Objects 安全上下文

使用选项 -v 以及常规 selinux 状态,您还可以显示所选文件和进程的 SELinux 上下文。

以下是 sestatus -v 选项的默认输出:

# sestatus -v
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Process contexts:
Current context:                unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Init context:                   system_u:system_r:init_t:s0
/usr/sbin/sshd                  system_u:system_r:sshd_t:s0-s0:c0.c1023

File contexts:
Controlling terminal:           unconfined_u:object_r:user_devpts_t:s0
/etc/passwd                     system_u:object_r:passwd_file_t:s0
/etc/shadow                     system_u:object_r:shadow_t:s0
/bin/bash                       system_u:object_r:shell_exec_t:s0
/bin/login                      system_u:object_r:login_exec_t:s0
/bin/sh                         system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0
/sbin/agetty                    system_u:object_r:getty_exec_t:s0
/sbin/init                      system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0
/usr/sbin/sshd                  system_u:object_r:sshd_exec_t:s0

在上面的输出中:

  • 进程上下文部分显示几个选定进程的 SELinux 上下文。您可以通过将您自己的进程添加到 /etc/sestatus.conf 文件来将它们添加到此列表中。正如您在此处看到的,它显示了 sshd 进程的安全上下文。
  • 文件上下文部分显示几个选定文件的 SELinux 上下文。您可以通过将您自己的自定义文件添加到 /etc/sestatus.conf 文件来将它们添加到此列表中。正如你在上面的输出中看到的,它显示了密码、影子和其他几个文件的安全上下文。
  • 此外,如果您指定的文件是符号链接,则还将显示目标文件的上下文。
    此部分将始终显示当前进程、init 进程和控制终端文件上下文的安全上下文。

以下是 /etc/sestatus.conf 文件的默认设置。将您的自定义文件添加到 [files] 部分,并将您的自定义进程添加到 [process] 部分。

# cat /etc/sestatus.conf 
[files]
/etc/passwd
/etc/shadow
/bin/bash
/bin/login
/bin/sh
/sbin/agetty
/sbin/init
/sbin/mingetty
/usr/sbin/sshd
/lib/libc.so.6
/lib/ld-linux.so.2
/lib/ld.so.1

[process]
/sbin/mingetty
/sbin/agetty
/usr/sbin/sshd

3. 在 sestatus 中显示布尔值

使用 -b 选项,您可以显示布尔值的当前状态,如下所示。

如下所示,除了典型的 sestatus 输出,在“Policy booleans:”部分,这将显示所有参数的当前 SELinux 布尔值。

# sestatus -b | more
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Policy booleans:
abrt_anon_write                             off
abrt_handle_event                           off
abrt_upload_watch_anon_write                on
antivirus_can_scan_system                   off
antivirus_use_jit                           off
auditadm_exec_content                       on
authlogin_nsswitch_use_ldap                 off
authlogin_radius                            off
authlogin_yubikey                           off
awstats_purge_apache_log_files              off
boinc_execmem                               on
cdrecord_read_content                       off
...
...
...
xend_run_blktap                             on
xend_run_qemu                               on
xguest_connect_network                      on
xguest_exec_content                         on
xguest_mount_media                          on
xguest_use_bluetooth                        on
xserver_clients_write_xshm                  off
xserver_execmem                             off
xserver_object_manager                      off
zabbix_can_network                          off
zarafa_setrlimit                            off
zebra_write_config                          off
zoneminder_anon_write                       off
zoneminder_run_sudo                         off

上面的输出通常显示您将在 getsebool 命令的输出中看到的内容。即上面的一个“sestatus -b”命令相当于运行以下两个命令:

sestatus

getsebool -a
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。