1import sys 2import dbus 3import dbus.service 4import dbus.mainloop.glib 5 6 7class SELinuxDBus (object): 8 9 def __init__(self): 10 self.bus = dbus.SystemBus() 11 self.dbus_object = self.bus.get_object("org.selinux", "/org/selinux/object") 12 13 def semanage(self, buf): 14 ret = self.dbus_object.semanage(buf, dbus_interface="org.selinux") 15 return ret 16 17 def restorecon(self, path): 18 ret = self.dbus_object.restorecon(path, dbus_interface="org.selinux") 19 return ret 20 21 def setenforce(self, value): 22 ret = self.dbus_object.setenforce(value, dbus_interface="org.selinux") 23 return ret 24 25 def customized(self): 26 ret = self.dbus_object.customized(dbus_interface="org.selinux") 27 return ret 28 29 def semodule_list(self): 30 ret = self.dbus_object.semodule_list(dbus_interface="org.selinux") 31 return ret 32 33 def relabel_on_boot(self, value): 34 ret = self.dbus_object.relabel_on_boot(value, dbus_interface="org.selinux") 35 return ret 36 37 def change_default_mode(self, value): 38 ret = self.dbus_object.change_default_mode(value, dbus_interface="org.selinux") 39 return ret 40 41 def change_default_policy(self, value): 42 ret = self.dbus_object.change_default_policy(value, dbus_interface="org.selinux") 43 return ret 44 45if __name__ == "__main__": 46 try: 47 dbus_proxy = SELinuxDBus() 48 resp = dbus_proxy.setenforce(int(sys.argv[1])) 49 print(resp) 50 except dbus.DBusException as e: 51 print(e) 52