Browse Source

Version 1

Sven Velt 7 years ago
commit
6c60addfae
2 changed files with 35 additions and 0 deletions
  1. 5 0
      .gitignore
  2. 30 0
      ssh-wrapper.py

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+.*sw?
+*~
+
+*.pyc
+

+ 30 - 0
ssh-wrapper.py

@@ -0,0 +1,30 @@
+#!/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)
+