conf: create directories before dropping root

Create logdir and dumpdir before dropping root. Set their uid/gid to the
user chronyd will switch to. This allows chronyd to create the
directories in a directory where the user won't have write permissions
(e.g. /var/lib).
This commit is contained in:
Miroslav Lichvar
2015-08-10 17:02:12 +02:00
parent e7100e106d
commit 6d42dd8603
6 changed files with 29 additions and 30 deletions

5
main.c
View File

@@ -493,12 +493,13 @@ int main
if ((pw = getpwnam(user)) == NULL)
LOG_FATAL(LOGF_Main, "Could not get %s uid/gid", user);
/* Create all directories before dropping root */
CNF_CreateDirs(pw->pw_uid, pw->pw_gid);
/* Drop root privileges if the user has non-zero uid or gid */
if (pw->pw_uid || pw->pw_gid)
SYS_DropRoot(pw->pw_uid, pw->pw_gid);
LOG_CreateLogFileDir();
REF_Initialise();
SST_Initialise();
NIO_Initialise(address_family);