Example #1
0
	def start(self):
		"""Start method"""
		if self._config.find("policy").text == 'allow':
			policy = True
		elif self._config.find("policy").text == 'deny':
			policy = False
		apps = [e.text for e in self._config.findall("entry[@type='app']")]
		for D, d, F in os.walk(app_dir):
			for f in F:
				if f.endswith(".desktop"):
					Exec = ''
					try:
						Exec = DesktopParser(os.path.join(D, f)).get('Exec')
						if Exec: Exec = Exec.split()[0]
					except Exception as e:
						print("__ app_permissions error:", e)
					for p in os.environ["PATH"].split(':'):
						b = os.path.join(p, Exec)
						if os.path.isfile(b):
							Exec = b
							break

					if f in apps:
						os.chmod(os.path.join(D, f), modes['app'][not policy])
						if os.path.isfile(Exec):
							os.chmod(Exec, modes['bin'][not policy])
					else:
						os.chmod(os.path.join(D, f), modes['app'][policy])
						if os.path.isfile(Exec):
							os.chmod(Exec, modes['bin'][policy])
Example #2
0
	def stop(self):
		"""Stop method"""
		for D, d, F in os.walk(app_dir):
			for f in F:
				f = os.path.join(D, f)
				if f.endswith(".desktop"):
					Exec = ''
					try:
						Exec = DesktopParser(f).get('Exec')
						if Exec: Exec = Exec.split()[0]
					except:
						pass
					for p in os.environ["PATH"].split(':'):
						b = os.path.join(p, Exec)
						if os.path.isfile(b):
							Exec = b
							break

					os.chmod(f, modes['app'][1])
					if os.path.isfile(Exec): os.chmod(Exec, modes['bin'][1])