def run_one_command(self, userargs, env=None, stdin=None): if env is None: env = {} obj = wrapper.start_subprocess( self.filters, userargs, exec_dirs=self.config.exec_dirs, log=self.config.use_syslog, close_fds=True, env=env, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = obj.communicate(stdin) return obj.returncode, out, err
def run_one_command(self, userargs, env=None, stdin=None): if env is None: env = {} obj = wrapper.start_subprocess(self.filters, userargs, exec_dirs=self.config.exec_dirs, log=self.config.use_syslog, close_fds=True, env=env, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = obj.communicate(stdin) return obj.returncode, out, err
def run_one_command(execname, config, filters, userargs): # Execute command if it matches any of the loaded filters try: obj = wrapper.start_subprocess( filters, userargs, exec_dirs=config.exec_dirs, log=config.use_syslog, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr) obj.wait() sys.exit(obj.returncode) except wrapper.FilterMatchNotExecutable as exc: msg = ("Executable not found: %s (filter match = %s)" % (exc.match.exec_path, exc.match.name)) _exit_error(execname, msg, RC_NOEXECFOUND, log=config.use_syslog) except wrapper.NoFilterMatched: msg = ("Unauthorized command: %s (no filter matched)" % ' '.join(userargs)) _exit_error(execname, msg, RC_UNAUTHORIZED, log=config.use_syslog)