SElinux 错误:ValueError:端口 tcp/5000 已定义

SElinux 错误:ValueError:端口 tcp/5000 已定义

我一直试图为端口 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 5000http_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_thttp_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

相关内容