Restorecon 在 CentOS 7 上不执行任何操作

Restorecon 在 CentOS 7 上不执行任何操作

在 CentOS 7.5、Linux 3.10.0-862.3.2.el7.x86_64 上,我试图了解文件上下文的工作原理。ls -Zchcon似乎semanage按预期工作,但restorecon似乎顽固地沉默。

例如:

$ cd
$ mkdir context
$ ls -laZ
drwxrwxr-x  liteyear liteyear ?                                context
$ chcon -v unconfined_u:object_r:user_home_t:s0 context
$ ls -laZ
drwxrwxr-x. liteyear liteyear unconfined_u:object_r:user_home_t:s0 context
$ rmdir context

一切都很好,并且semanage

$ mkdir context
$ sudo semanage fcontext -a -t user_home_t /home/liteyear/context
$ cat /etc/selinux/targeted/contexts/files/file_contexts.local

# This file is auto-generated by libsemanage
# Do not edit directly.

/home/liteyear/context    system_u:object_r:user_home_t:s0

一切都很好,但restorecon路线:

$ restorecon -v /home/liteyear/context
$ ls -laZ
drwxrwxr-x  liteyear liteyear ?                                context

不应用文件上下文。

我已经尝试了各种迭代,使用现有的上下文、不同的上下文、其他文件夹和文件,但restorecon从未产生任何结果。有各种类似的报告(例如[CentOS] SELinux Restorecon 不起作用)但似乎没有人证实存在问题。

restorecon这是应该的方式吗?

答案1

在启用了 SELinux 的运行系统上,新文件和目录会继承父目录的上下文或根据策略规则应用上下文。示例显示创建目录时不应用任何 SELinux 上下文,从安全上下文列中的ls -Z输出可见。?

这表明您的系统上未启用 SELinux。当 SELinux 启用时,系统将自动应用文件上下文。

您可以使用sestatus命令检查 SELinux 状态。

如果您想重新启用 SELinux,您应该检查文档提前。系统应首先以宽容模式启动,以便重新标记(缺少要应用的标签),并且在切换到强制模式之前应修复任何明显的问题。

SELinux 通常需要一些配置:您的文件可能位于未包含在默认策略中的位置或者您的应用程序可能需要比默认策略允许的更多权限。在调查 SELinux 日志时,audit2allow它们audit2why是有用的工具,通常会显示错误的文件标签或建议可以解决问题的布尔值。

SELinux 还有许可域它可用于禁用某些域(进程)的 SELinux,同时使策略的其余部分保持强制模式。在宽容模式下,日志的生成方式与在强制模式下相同,否则访问会被拒绝。显然,在许可域中运行应用程序实际上与运行禁用 SELinux 的应用程序相同。

相关内容