使所有SELinux上下文永久存在


9

我最近做了很多chcon-ing操作,但是如果我理解正确的话,这些将在下一次重新标记时删除。有什么方法可以使当前上下文(最好是在某个目录下)永久存在?我知道可以使用来实现此目的semanage,但这意味着要回顾并检查每个文件的上下文并调用semanage以设置规则。那么,有一些自动化的方法吗?

Answers:


5

首先,您可以semanage fcontext -a -t <type> <filepattern>通过将文件更改添加到策略中来使文件更改永久生效-您需要重新标记或restorecon -R -v <filepattern>应用这些更改。chcon不会更改策略,只会更改磁盘上下文。

您可以使用来生成与标签策略的差异列表matchpathcon,具体而言:

matchpathcon -V /path/to/file

不幸的是,它没有递归选项,可能是由于走树很昂贵,但是您可以使用以下方法来驱动它:

find / -exec matchpathcon -V {} \;

但是,要小心。我相信find会遍历所有文件系统挂载,包括没有扩展属性(xattrs)的文件系统,这可能会引起问题。当然,如果您的所有文件系统都具有扩展属性,则不会有问题。

有了此列表后,您就可以编写一个脚本来挑选您将要选择的脚本semanage。但是,我不知道一种自动完成此操作的方法。


3

matchpathcon与with一起使用find非常慢。为什么不使用restorecon

restorecon -rnv /path/to/dir

这些标志是递归的,不变的和冗长的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.