Module: check_mk
Branch: master
Commit: 3df654e57a4768362824fdc77d138ec26ba9fb5f
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=3df654e57a4768…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 14 14:59:34 2010 +0100
WATO: fix help for /etc/sudoers
---
ChangeLog | 2 +-
web/htdocs/wato.py | 12 ++++++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index beec4f3..397c8f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,7 +5,7 @@
lines (e.g. Frame Relay)
Multisite:
- * WATO: Fixed omd mode/site detection
+ * WATO: Fixed omd mode/site detection and help for /etc/sudoers
* WATO: Use and show common log for pending changes
* Sidebar Quicksearch: Now really disabling browser built-in completion
dropdown selections
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 9af1fa1..45f76fa 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -496,6 +496,7 @@ def check_mk_automation(command, args=[], indata=""):
# - When not set try to detect the command for OMD or non OMD installations
# - OMD 'own' apache mode or non OMD: check_mk --automation
# - OMD 'shared' apache mode: Full path to the binary and the defaults
+ sudoline = None
if defaults.check_mk_automation:
commandargs = defaults.check_mk_automation.split()
cmd = commandargs + [ command ] + args
@@ -507,9 +508,16 @@ def check_mk_automation(command, args=[], indata=""):
else: # OMD shared mode
commandargs = [ 'sudo', '/bin/su', '-', omd_site,
'-c', 'check_mk --automation' ]
cmd = commandargs[:-1] + [ commandargs[-1] + ' ' + ' '.join([
command ] + args) ]
+ sudoline = "%s ALL = (root) NOPASSWD: /bin/su - %s -c check_mk\\
--automation\\ *" % (html.apache_user(), omd_site)
sudo_msg = ''
if commandargs[0] == 'sudo':
+ if not sudoline:
+ if commandargs[1] == '-u': # skip -u USER in /etc/sudoers
+ sudoline = "%s ALL = (%s) NOPASSWD: %s *" %
(html.apache_user(), commandargs[2], " ".join(commandargs[3:]))
+ else:
+ sudoline = "%s ALL = (root) NOPASSWD: %s *" %
(html.apache_user(), commandargs[0], " ".join(commandargs[1:]))
+
sudo_msg = ("<p>The webserver is running as user which has no rights
on the "
"needed Check_MK/Nagios files.<br />Please ensure you have
set-up "
"the sudo environment correctly. e.g. proceed as
follows:</p>\n"
@@ -517,10 +525,10 @@ def check_mk_automation(command, args=[], indata=""):
"<li>Append the following to the
<code>/etc/sudoers</code> file:\n"
"<pre># Needed for WATO - the Check_MK Web Administration
Tool\n"
"Defaults:%s !requiretty\n"
- "%s ALL = (root) NOPASSWD: %s\ *\n"
+ "%s\n"
"</pre></li>\n"
"<li>Retry this operation</li></ol>\n" %
- (html.apache_user(), html.apache_user(), "
".join(commandargs[1:-1] + [ commandargs[-1].replace(' ', '\ ')])))
+ (html.apache_user(), sudoline))
try:
p = subprocess.Popen(cmd,