![使用firewall-cmd 添加firewalld 服务](https://linux22.com/image/669557/%E4%BD%BF%E7%94%A8firewall-cmd%20%E6%B7%BB%E5%8A%A0firewalld%20%E6%9C%8D%E5%8A%A1.png)
如何以编程方式从命令行为firewalld创建新服务?
我找不到允许我执行此操作的防火墙命令选项。是我遗漏了它还是它实际上不存在?如果是后者,还有其他选择吗?我知道您可以创建一个 .xml 服务文件,但我正在寻找一种更简洁(更不容易出错)的方法来创建服务文件。
答案1
根据此 FedoraForum 主题,目前还无法做到。
然而,在同一个帖子中,这个帖子解释使用导入firewalld绑定的python脚本的可能的解决方法。
简而言之:
python -c "import firewall.core.io.service as ios
s=ios.Service() #Creates a service object
s.short = 'My Matlab Service' #A short description
s.name = 'matlab' #this defines the name of the xml file
s.ports = [('1234', 'tcp'), ('12345', 'udp')] #A list of ports
ios.service_writer(s, '/etc/firewalld/services')"