那令人印象深刻,你让我去源代码找到答案.您确实偶然发现了第一次尝试定义范围的正确方法:两个数字必须用连字符分隔.
是什么让你感到高兴:
(rc,exists) = semanage_port_exists(self.sh,k)
if rc < 0:
raise ValueError(_("Could not check if port %s/%s is defined") % (proto,port))
if not exists:
raise ValueError(_("Port %s/%s is not defined") % (proto,port))
如果在添加规则时指定端口范围,则必须在删除规则时指定相同的端口范围.例如:
sudo semanage port -l | grep ^http_port_t
http_port_t tcp 80,443,488,8008,8009,8443
要删除它们,必须为逗号之间的每个端口或端口范围调用一次delete.它们不能是连续的范围,因为它们没有这样定义.
相反,通过这个例子:
MysqLd_port_t tcp 1186,3306,63132-63163
您无法单独删除63132或63133.您必须指定该确切范围.
添加和删除范围的示例:
semanage port --add -t http_port_t -p tcp 8899-8902
semanage port --delete -t http_port_t -p tcp 8899-8902