介绍3个SELinux sestatus 命令输出示例及说明
sestatus 表示 SELinux 状态,此命令用于查看系统上正在运行的 SELinux 的当前状态。
大家好,本文将解释了以下内容:
- sestatus 命令输出详解
- 在 sestatus 中显示选定对象的安全上下文
- 在 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
- 点赞
- 收藏
- 关注作者
评论(0)