我最近做了很多chcon
-ing操作,但是如果我理解正确的话,这些将在下一次重新标记时删除。有什么方法可以使当前上下文(最好是在某个目录下)永久存在?我知道可以使用来实现此目的semanage
,但这意味着要回顾并检查每个文件的上下文并调用semanage
以设置规则。那么,有一些自动化的方法吗?
我最近做了很多chcon
-ing操作,但是如果我理解正确的话,这些将在下一次重新标记时删除。有什么方法可以使当前上下文(最好是在某个目录下)永久存在?我知道可以使用来实现此目的semanage
,但这意味着要回顾并检查每个文件的上下文并调用semanage
以设置规则。那么,有一些自动化的方法吗?
Answers:
首先,您可以semanage fcontext -a -t <type> <filepattern>
通过将文件更改添加到策略中来使文件更改永久生效-您需要重新标记或restorecon -R -v <filepattern>
应用这些更改。chcon
不会更改策略,只会更改磁盘上下文。
您可以使用来生成与标签策略的差异列表matchpathcon
,具体而言:
matchpathcon -V /path/to/file
不幸的是,它没有递归选项,可能是由于走树很昂贵,但是您可以使用以下方法来驱动它:
find / -exec matchpathcon -V {} \;
但是,要小心。我相信find会遍历所有文件系统挂载,包括没有扩展属性(xattrs)的文件系统,这可能会引起问题。当然,如果您的所有文件系统都具有扩展属性,则不会有问题。
有了此列表后,您就可以编写一个脚本来挑选您将要选择的脚本semanage
。但是,我不知道一种自动完成此操作的方法。