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

pan*_*tor 17 httpd selinux port

我一直在尝试为端口 5000 上的 apache 添加一个例外到 SELinux。所以我使用了命令:

 # semanage port -a -t http_port_t -p tcp 5000
Run Code Online (Sandbox Code Playgroud)

但返回错误,

ValueError: Port tcp/5000 already defined
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令检查是否是这样:

semanage port -l |grep 5000
Run Code Online (Sandbox Code Playgroud)

这给出了输出,

http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
Run Code Online (Sandbox Code Playgroud)

如您所见,5000 不在列表中。

有什么明显的我遗漏了吗?预先感谢您的努力

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

但是通过将-a选项替换-m为 for modify,将 tcp 端口 5000 添加到http_port_t

pan*_*tor 35

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

但是通过用for modify替换-a选项-m,添加tcp port 5000http_port_t

所以有效的命令是:

# semanage port -m -t http_port_t -p tcp 5000
Run Code Online (Sandbox Code Playgroud)


use*_*517 11

在我必须使用的系统(C6、C7 和 F24)上,tcp 端口 5000 的 SELinux 上下文为commplex_port_t. 这就是为什么当您尝试添加它时会收到错误消息

/usr/sbin/semanage: Port tcp/5000 already defined
Run Code Online (Sandbox Code Playgroud)

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

-m, --modify     Modify a OBJECT record NAME
Run Code Online (Sandbox Code Playgroud)

所以

semanage port -m -t http_port_t -p tcp 5000
Run Code Online (Sandbox Code Playgroud)

应该做你想做的

semanage port -l | grep 5000
http_port_t                tcp      5000, 80, 81, 443, 488, 8008, 8009, 8443, 9000
Run Code Online (Sandbox Code Playgroud)