From: Alan T. DeKok Date: Mon, 1 Jun 2015 13:03:31 +0000 (-0400) Subject: Create run_dir in daemon mode X-Git-Tag: release_3_0_9~303 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ca846ea307934c6d48086694740c96b08e2016b;p=thirdparty%2Ffreeradius-server.git Create run_dir in daemon mode --- diff --git a/src/main/mainconfig.c b/src/main/mainconfig.c index b60f0c6c962..35a57079262 100644 --- a/src/main/mainconfig.c +++ b/src/main/mainconfig.c @@ -571,7 +571,26 @@ static int switch_users(CONF_SECTION *cs) } } + /* + * If we did change from root to a normal user, do some + * more work. + * + * Try to create the "run_dir", where the PID file is + * located. Because this attempt is new in 3.0.9, it's a + * soft fail. + * + * And once we're done with all of the aboe work, + * permanently change the UID. + */ if (do_suid) { + char *my_run_dir = talloc_strdup(NULL, run_dir); + + if (rad_mkdir(my_run_dir, 0600, server_uid, server_gid) < 0) { + radlog(L_WARN, "Failed to create run_dir %s: %s", + run_dir, strerror(errno)); + } + talloc_free(my_run_dir); + rad_suid_set_down_uid(server_uid); rad_suid_down(); }