是否有可能在重新启动后坚持selinux端口语句?

目前我们每次启动时都需要运行这样的东西:

/usr/sbin/semanage port -a -t memcache_port_t -p tcp ${special-snowflake-port} 

如果我们可以在重新启动时坚持这一点,那将是非常好的。 答案是要编译这个有价值的东西,但是最大的问题是如何做到这一点? 没有什么我在.fc文件中看到的文件表明这可以在那里编码,而.te文件的语法是难以阅读的。 然而,很明显,按照编制的政策确实设置了一些东西,我只是找不到。

我错过了什么?

我只是testing了你在CentOS 6.5系统上提供的命令,它按照预期执行,并在${special-snowflake-port} tcp memcache_port_t列表中添加${special-snowflake-port} 。 重启testing虚拟机并没有改变这一点

 semanage port -l | grep memcache_port_t memcache_port_t tcp 11311, 11211 memcache_port_t udp 11211 

这一直存在,直到你删除它

 semanage port -d -t memcache_port_t -p tcp 11311 semanage port -l | grep memcache_port_t memcache_port_t tcp 11211 memcache_port_t udp 11211 

你有什么误解? 是什么让你觉得这不是持久的?

事实certificate,他们实际上是坚持,我从来没有注意到。 semanage/etc/selinux/${config-file}/modules/active中存储策略的文件表示。 在我的情况下,端口列表在:

 /etc/selinux/targeted/modules/active/ports.local 

这充满了类似这样的条目:

 portcon tcp 11222 system_u:object_r:memcache_port_t:s0 

无论何时通过semanage添加(-a)或删除(-d)规则,都会重新生成此目录。

file_contexts是文件持久化文件上下文。

这很方便,因为这些文件grep比semanage -l输出可以产生更快。