Fix error and only let root run init commands except for status and help

This commit is contained in:
Roy Marples 2007-07-02 19:57:18 +00:00
parent 53097aedc5
commit d6c72cc87c
2 changed files with 8 additions and 2 deletions

View File

@ -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);
}

View File

@ -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