重新安装操作系统后重新创建本地 selinux 上下文

重新安装操作系统后重新创建本地 selinux 上下文

我们通过“semanage fcontext ...”命令向 SELinux 添加了一些特定的上下文。这些模式存储在 /etc/selinux/targetd/contexts/files/file_contexts.local 中。

假设我们希望在不同的计算机上实现相同的权限,或者必须在该计算机上重新安装操作系统,将 file_contexts.local 放在正确的位置是否足够?是否需要采取任何其他步骤来使 SELinux 进程并使用该文件?

操作系统:RHEL 6.7

谢谢你!

答案1

除了复制/etc/selinux/targetd/contexts/files/file_contexts.local文件之外,您还需要restorecon对 中引用的目录和文件运行命令/etc/selinux/targetd/contexts/files/file_contexts.local

执行此操作的一个简单方法(同时还为 SELinux 默认值引用的系统中的所有文件设置/etc/selinux/targetd/contexts/files/file_contextsSELinux 上下文)是运行以下命令:

$ sudo restorecon -R /

笔记:该-R标志意味着递归到子目录和文件,从而恢复系统上所有文件的上下文,如file_contextfile_context.local文件中所定义。

编辑:正如 Sourcejedi 在评论中明智地指出的那样。在整个文件系统上运行restorecon可能会尝试更改不支持它的文件系统(即已安装的驱动器等)上的标签。您可以使用该fixfiles restore命令来避免此问题。

fixfiles手册页:

By default it will relabel all mounted ext2, ext3, xfs and jfs file systems as 
long as they do not have a security context mount option. The file 
/etc/selinux/fixfiles_exclude_dirs can contain a list of directories 
excluded from relabeling.

您还可以使用fixfiles onboot它将在下次重新启动时重新标记。

同样,touch /.autorelabel && reboot将在重新启动期间重新标记文件/

相关内容