我一直试图为端口 5000 上的 apache 添加 SELinux 例外。因此我使用了以下命令:
# semanage port -a -t http_port_t -p tcp 5000
但返回错误,
ValueError: Port tcp/5000 already defined
我尝试使用以下命令检查是否如此:
semanage port -l |grep 5000
输出结果为,
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
如你所见,5000 不在列表中。
我是否遗漏了什么明显的内容?提前感谢您的努力
所以我发现另一项服务对 TCP 端口 5000 具有定义的状态。
但是通过用修改替换-a
选项-m
,将 tcp 端口 5000 添加到http_port_t
答案1
所以我发现另一项服务对 TCP 端口 5000 具有定义的状态。
但通过将-a
选项替换-m
为修改,添加tcp port 5000
到http_port_t
因此有效的命令是:
# semanage port -m -t http_port_t -p tcp 5000
答案2
在我手头的系统(C6、C7 和 F24)上,tcp 端口 5000 的 SELinux 上下文为commplex_port_t
。这就是为什么当你尝试添加它时会收到错误消息
/usr/sbin/semanage: Port tcp/5000 already defined
要将 tcp 端口 5000 的上下文从 更改为 ,commplex_port_t
您http_port_t
需要使用 -m | --modify 开关
-m, --modify Modify a OBJECT record NAME
所以
semanage port -m -t http_port_t -p tcp 5000
应该做你想做的事
semanage port -l | grep 5000
http_port_t tcp 5000, 80, 81, 443, 488, 8008, 8009, 8443, 9000