目前我们每次启动时都需要运行这样的东西:
/usr/sbin/semanage port -a -t memcache_port_t -p tcp ${special-snowflake-port}
如果我们可以在重新启动时坚持这一点,那就太好了。答案是编译 poicy,但最大的问题是这是如何完成的?我在.fc
文件文档中看到的任何内容都没有表明这可以在那里进行编码,并且.te
文件语法有点难以阅读。然而,显然每个编译的策略确实设置了一些东西,我只是找不到如何。
我错过了什么?
目前我们每次启动时都需要运行这样的东西:
/usr/sbin/semanage port -a -t memcache_port_t -p tcp ${special-snowflake-port}
如果我们可以在重新启动时坚持这一点,那就太好了。答案是编译 poicy,但最大的问题是这是如何完成的?我在.fc
文件文档中看到的任何内容都没有表明这可以在那里进行编码,并且.te
文件语法有点难以阅读。然而,显然每个编译的策略确实设置了一些东西,我只是找不到如何。
我错过了什么?
我刚刚在 CentOS 6.5 系统上测试了您提供的命令,它按预期执行并添加
${special-snowflake-port}
到tcp memcache_port_t
列表中。重新启动测试虚拟机并没有改变这一点这一直存在,直到您将其删除
你有什么误解?是什么让你认为这不是持久的?
事实证明,它们实际上是持久存在的,而我从未注意到。
semanage
将策略的文件表示形式存储在/etc/selinux/${config-file}/modules/active
. 就我而言,端口列表位于:这充满了与此类似的条目:
每当 semanage 添加 (-a) 或删除 (-d) 规则时,都会重新生成此目录。
file_contexts
是文件持久化文件上下文。这很方便,因为这些文件 grep 的生成速度比 semanage -l 输出要快。