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

我一直试图在端口5000上为apache添加一个exception到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定义的状态。

但是通过用-mreplace-a选项来修改,将tcp端口5000添加到http_port_t

所以我发现另一个服务有一个为TCP端口5000定义的状态。

但是通过用-mreplace-a选项来修改,将tcp port 5000添加到http_port_t

所以工作的命令是:

 # semanage port -m -t http_port_t -p tcp 5000 

在我必须使用的系统(C6,C7和F24)上,tcp端口5000有一个与commplex_port_t的SELinux上下文。 这就是为什么,当你尝试添加它时,你会得到错误信息

 /usr/sbin/semanage: Port tcp/5000 already defined 

要将tcp端口5000的上下文从commplex_port_thttp_port_t您需要使用-m | – 修改开关

 -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