diff options
| author | Markus Uhlin <markus@nifty-networks.net> | 2025-11-02 18:59:43 +0100 |
|---|---|---|
| committer | Markus Uhlin <markus@nifty-networks.net> | 2025-11-02 18:59:43 +0100 |
| commit | ec173685a453bde9f6f024e04a5ed5da897210ab (patch) | |
| tree | e04985afab644bc1fc33e534f086ac81250c3a86 /FICS/fics_addplayer.c | |
| parent | 05cf281ed146182f70521e9be359cde1ef8e7c89 (diff) | |
Handle if the FICS is installed system-wide
Diffstat (limited to 'FICS/fics_addplayer.c')
| -rw-r--r-- | FICS/fics_addplayer.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/FICS/fics_addplayer.c b/FICS/fics_addplayer.c index 18d42c4..c37ca63 100644 --- a/FICS/fics_addplayer.c +++ b/FICS/fics_addplayer.c @@ -42,6 +42,7 @@ #include "fics_getsalt.h" #include "ficsmain.h" #include "playerdb.h" +#include "prep_dir_for_privdrop.h" #include "settings.h" #include "utils.h" @@ -136,6 +137,16 @@ main(int argc, char *argv[]) settings_init(); settings_read_conf(FICS_SETTINGS); + 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"); + } + player_init(0); p = player_new(); |
