

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 改为 `enforcing` 模式
<a name="enforcing-mode"></a>

当您在 `enforcing` 模式下运行 SELinux 时，SELinux 实用程序就是 `enforcing` 配置的策略。SELinux 基于策略规则来允许或拒绝访问，以此来控制选定应用程序的功能。

要查找当前 SELinux 模式，请运行 `getenforce` 命令。

```
getenforce
Permissive
```

## 编辑配置文件以启用 `enforcing` 模式
<a name="config-file-enforcing"></a>

您可以使用以下步骤将模式改为 `enforcing`。

1. 编辑 `/etc/selinux/config` 文件以改为 `enforcing` 模式。`SELINUX` 设置应类似以下示例。

   ```
   SELINUX=enforcing
   ```

1. 重新启动系统以完成改为 `enforcing` 模式。

   ```
   $ sudo reboot
   ```

在下次启动时，SELinux 会重新标记系统中的所有文件和目录。SELinux 还会为在 SELinux 处于 `disabled` 模式时创建的文件和目录添加 SELinux 上下文。

切换到 `enforcing` 模式后，由于 SELinux 策略规则不正确或缺失，SELinux 可能会拒绝某些操作。您可以使用以下命令查看 SELinux 拒绝的操作。

```
$ sudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
```

## 使用 cloud-init 启用 `enforcing` 模式
<a name="cloud-init-enforcing"></a>

或者，当您启动实例时，请将以下 `cloud-config` 作为用户数据传递以启用 `enforcing` 模式。

```
#cloud-config
selinux: 
  mode: enforcing
```

默认情况下，此设置会导致实例重新启动。为了提高稳定性，建议您重启实例。但是，如果您愿意，可以通过提供以下 `cloud-config` 来跳过重新启动。

```
#cloud-config
selinux:
  mode: enforcing
  selinux_no_reboot: 1
```