Mik*_*ell 8 linux selinux centos
令人惊讶的是,找不到任何关于如何通过semanage port
. 这是我尝试过的排列列表:
semanage port -d -t http_port_t -p tcp 0-60000
semanage port -d -t http_port_t -p tcp [1-60000]
semanage port -d -t http_port_t -p tcp 1,60000
semanage port -d -t http_port_t -p tcp 1-60000
semanage port -d -t http_port_t -p tcp 1 60000
semanage port -d -t http_port_t -p tcp 1,60000
semanage port -d -t http_port_t -p tcp <60000
semanage port -d -t http_port_t -p tcp '1-60000'
semanage port -d -t http_port_t -p tcp '1,60000'
semanage port -d -t http_port_t -p tcp 1000-10000
Run Code Online (Sandbox Code Playgroud)
关于如何指示范围的帮助消息不清楚:
root@service1 /etc/yum/pluginconf.d # -> semanage -h
/usr/sbin/semanage:
semanage [ -S store ] -i [ input_file | - ]
semanage [ -S store ] -o [ output_file | - ]
semanage login -{a|d|m|l|D|E} [-nrs] login_name | %groupname
semanage user -{a|d|m|l|D|E} [-LnrRP] selinux_name
semanage port -{a|d|m|l|D|E} [-nrt] [ -p proto ] port | port_range
Run Code Online (Sandbox Code Playgroud)
嗯,这令人印象深刻,你让我去源代码寻找答案。第一次尝试时,您确实偶然发现了定义范围的正确方法:两个数字必须用连字符分隔。
困扰你的是:
(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))
Run Code Online (Sandbox Code Playgroud)
如果在添加规则时指定了端口范围,则删除规则时必须指定相同的端口范围。例如:
sudo semanage port -l | grep ^http_port_t
http_port_t tcp 80, 443, 488, 8008, 8009, 8443
Run Code Online (Sandbox Code Playgroud)
要删除它们,您必须为逗号之间的每个端口或端口范围调用一次 delete。它们不能是连续的范围,因为它们不是那样定义的。
相反,在这个例子中:
mysqld_port_t tcp 1186, 3306, 63132-63163
Run Code Online (Sandbox Code Playgroud)
您不能单独删除 63132 或 63133。您必须指定确切的范围。
添加和删除范围的示例:
semanage port --add -t http_port_t -p tcp 8899-8902
semanage port --delete -t http_port_t -p tcp 8899-8902
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14409 次 |
最近记录: |