diff options
Diffstat (limited to 'FICS')
| -rw-r--r-- | FICS/makerank.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/FICS/makerank.c b/FICS/makerank.c index aa92ae0..e50886a 100644 --- a/FICS/makerank.c +++ b/FICS/makerank.c @@ -15,6 +15,7 @@ #include "common.h" #include "ficsmain.h" #include "makerank.h" +#include "prep_dir_for_privdrop.h" #include "utils.h" static ENTRY **list; @@ -340,6 +341,16 @@ main(int argc, char **argv) return EXIT_FAILURE; } + if (strncmp(FICS_PREFIX, "/home", 5) == 0) { + if (is_super_user()) + errx(1, "Do not run as root"); + } else { + if (!is_super_user()) + errx(1, "Need root privileges"); + else if (drop_root_privileges(FICS_PREFIX) == -1) + errx(1, "Privdrop failed"); + } + makerank(); return EXIT_SUCCESS; } |
