#!/usr/bin/env python import os import re import shlex import subprocess import sys allowed = [ r'^/usr/bin/lsb_release\s+-d$', r'^/usr/lib/nagios/plugins/check_disk -w \d+% -c \d+% -p /[/a-z]*$', r'^/usr/lib/nagios/plugins/check_load -w \d+(,\d+,\d+)? -c \d+(,\d+,\d+)?$', r'^/usr/lib/nagios/plugins/check_mysql -u [a-z]+ -p [0-9a-zA-Z]+', r'^/usr/lib/nagios/plugins/check_mysql_health --user(name)?=[a-z]+ --pass(word)?=[0-9a-zA-Z]+ --mode=[a-z-]+$', ] #cmdline = ' '.join(sys.argv[1:]) cmdline = os.getenv('SSH_ORIGINAL_COMMAND') for maybe in allowed: if re.match(maybe, cmdline): cmdline = shlex.split(cmdline) cmd = subprocess.Popen(cmdline, stdout=subprocess.PIPE) print cmd.communicate()[0].rstrip() sys.exit(cmd.returncode) print '%s: No command found!' % sys.argv[0] sys.exit(3)