我的目标是使用Python在centos7机器上自动配置防火墙。在
操作系统带有防火墙,所以我用的就是这个。我调查了一下,发现它使用了dbus(我从未听说过或处理过任何此类问题—如果我说的任何内容不正确,请纠正我。)
我检查了一下,操作系统附带的Python版本包含了dbus模块,因此这似乎是一个很有前途的开始。在
该文档表明,我需要进一步了解firewalld通过dbus接口公开的内容。所以我做了更多的研究发现:
https://www.mankier.com/5/firewalld.dbus
第一份文件说我需要从一个“众所周知的名字”开始。他们的例子是org.freedesktop.NetworkManager。第二个文档的标题是firewalld.dbus,因此我认为这是一个值得尝试的名称,因为该文档在其他任何地方都没有显式地给出名称。在
第一个文档还说我需要一个对象路径的名称。他们的例子是/org/freedesktop/NetworkManager。第二个文档的对象路径是/org/fedoraproject/FirewallD1。在
我把这些放在一起,并尝试使用第一个文档建议的第一个方法,SystemBus的{}:>>> from dbus import SystemBus
>>> bus = SystemBus()
>>> proxy = bus.get_object('firewalld.dbus', '/org/fedoraproject/FirewallD1')
Traceback (most recent call last):
File "", line 1, in
File &#