summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorM. Sean Finney <seanius@users.sourceforge.net>2007-05-27 13:46:32 (GMT)
committerM. Sean Finney <seanius@users.sourceforge.net>2007-05-27 13:46:32 (GMT)
commitbf9f0e9f8901f0e9e960e367941d2ab53435f641 (patch)
treecf1940e4cd3bf23b5348eaec9c4bedfed335f38e /lib
parent3f5fbd9797feffe31cc7046d2abd0ef819a703e8 (diff)
downloadmonitoring-plugins-bf9f0e9f8901f0e9e960e367941d2ab53435f641.tar.gz
added functions to utils_base:
np_check_if_root() - returns nonzero if geteuid()==0 np_warn_if_not_root() - uses the above to print an informative warning added uses of these functions to check_dhcp and check_icmp. git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1718 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'lib')
-rw-r--r--lib/utils_base.c15
-rw-r--r--lib/utils_base.h7
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/utils_base.c b/lib/utils_base.c
index db21ea1..da28128 100644
--- a/lib/utils_base.c
+++ b/lib/utils_base.c
@@ -228,3 +228,18 @@ char *np_escaped_string (const char *string) {
228 data[j] = '\0'; 228 data[j] = '\0';
229 return data; 229 return data;
230} 230}
231
232int np_check_if_root(void) { return (geteuid() == 0); }
233
234int np_warn_if_not_root(void) {
235 int status = np_check_if_root();
236 if(!status) {
237 printf(_("Warning: "));
238 printf(_("This plugin must be either run as root or setuid root.\n"));
239 printf(_("To run as root, you can use a tool like sudo.\n"));
240 printf(_("To set the setuid permissions, use the command:\n"));
241 // XXX could we use something like progname?
242 printf("\tchmod u+s yourpluginfile\n");
243 }
244 return status;
245}
diff --git a/lib/utils_base.h b/lib/utils_base.h
index b722d0e..bda7659 100644
--- a/lib/utils_base.h
+++ b/lib/utils_base.h
@@ -43,4 +43,11 @@ void die (int, const char *, ...) __attribute__((noreturn,format(printf, 2, 3)))
43#define NP_RANGE_UNPARSEABLE 1 43#define NP_RANGE_UNPARSEABLE 1
44#define NP_WARN_WITHIN_CRIT 2 44#define NP_WARN_WITHIN_CRIT 2
45 45
46/* a simple check to see if we're running as root.
47 * returns zero on failure, nonzero on success */
48int np_check_if_root(void);
49/* and a helpful wrapper around that. it returns the same status
50 * code from the above function, in case it's helpful for testing */
51int np_warn_if_not_root(void);
52
46#endif /* _UTILS_BASE_ */ 53#endif /* _UTILS_BASE_ */