On startup, the file is opened and possibly created as root. On configuration reload, the file is reopened as the configured user. Therefore, the log file should be owned by this user. --- src/libcharon/bus/listeners/file_logger.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/src/libcharon/bus/listeners/file_logger.c b/src/libcharon/bus/listeners/file_logger.c index d1f180227..cc9bc52eb 100644 --- a/src/libcharon/bus/listeners/file_logger.c +++ b/src/libcharon/bus/listeners/file_logger.c @@ -243,6 +243,13 @@ METHOD(file_logger_t, open_, void, this->filename, strerror(errno)); return; } + if (chown(this->filename, lib->caps->get_uid(lib->caps), + lib->caps->get_gid(lib->caps))) + { + DBG1(DBG_DMN, + "changing permissions for file %s failed: %s", + this->filename, strerror(errno)); + } #ifdef HAVE_SETLINEBUF if (flush_line) { -- 2.25.2