From d6c72cc87c1134dbd16ebafc1f63f712a08b89e1 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Mon, 2 Jul 2007 19:57:18 +0000 Subject: [PATCH] Fix error and only let root run init commands except for status and help --- src/librc.c | 3 +-- src/runscript.c | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/librc.c b/src/librc.c index cd085102..6392426b 100644 --- a/src/librc.c +++ b/src/librc.c @@ -224,11 +224,10 @@ bool rc_mark_service (const char *service, const rc_service_state_t state) unlink (file); i = symlink (init, file); if (i != 0) { + eerror ("symlink `%s' to `%s': %s", init, file, strerror (errno)); free (file); free (init); free (svc); - einfo ("%d %s %s", state, rc_service_state_names[state], base); - eerror ("symlink `%s' to `%s': %s", init, file, strerror (errno)); return (false); } diff --git a/src/runscript.c b/src/runscript.c index 18ee1ddd..18515372 100644 --- a/src/runscript.c +++ b/src/runscript.c @@ -1140,6 +1140,13 @@ int main (int argc, char **argv) if (sighup) exit (EXIT_FAILURE); + if (strcmp (optarg, "status") != 0 && + strcmp (optarg, "help") != 0) { + /* Only root should be able to run us */ + if (geteuid () != 0) + eerrorx ("%s: root access required", applet); + } + /* Export the command we're running. This is important as we stamp on the restart function now but some start/stop routines still need to behave differently if