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