diff options
author | Roy Marples <roy@marples.name> | 2008-03-06 11:39:05 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-03-06 11:39:05 +0000 |
commit | 2f22f9dfeb3b741cf059f25b85d1e3bff78fd0a0 (patch) | |
tree | 8fda542a160cb4da8fa75148dbf2ea5a143e22b9 | |
parent | 39dd08c5390bdfd6703ea502e723e0236a632fda (diff) |
Test access instead of euid.
-rw-r--r-- | src/rc/rc.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c index 9dc8b0cf..82f3a654 100644 --- a/src/rc/rc.c +++ b/src/rc/rc.c @@ -770,13 +770,6 @@ int main (int argc, char **argv) newlevel = argv[optind++]; -#ifndef PREFIX - /* OK, so we really are the main RC process - * Only root should be able to run us */ - if (geteuid () != 0) - eerrorx ("%s: root access required", applet); -#endif - /* Enable logging */ setenv ("EINFO_LOG", "rc", 1); @@ -972,7 +965,12 @@ int main (int argc, char **argv) /* Clean the failed services state dir */ clean_failed (); - mkdir (RC_STOPPING, 0755); + if (mkdir (RC_STOPPING, 0755) != 0) { + if (errno == EACCES) + eerrorx ("%s: superuser access required", applet); + eerrorx ("%s: failed to create stopping dir: %s", + applet, strerror (errno)); + } /* Build a list of all services to stop and then work out the * correct order for stopping them */ |