The -r option of newsyslog(8) removes the requirement that newsyslog runs as root. Would it also make sense to not try to send the SIGHUP to syslogd in that case?
Jan Index: newsyslog.8 =================================================================== RCS file: /cvs/src/usr.bin/newsyslog/newsyslog.8,v retrieving revision 1.52 diff -u -p -u -p -r1.52 newsyslog.8 --- newsyslog.8 16 Sep 2014 16:27:23 -0000 1.52 +++ newsyslog.8 12 Nov 2015 21:20:52 -0000 @@ -123,7 +123,7 @@ Removes the restriction that must be running as root. Note that in this mode .Nm -will not be able to send a +will not try to send a .Dv SIGHUP signal to .Xr syslogd 8 . Index: newsyslog.c =================================================================== RCS file: /cvs/src/usr.bin/newsyslog/newsyslog.c,v retrieving revision 1.95 diff -u -p -u -p -r1.95 newsyslog.c --- newsyslog.c 20 Aug 2015 22:32:41 -0000 1.95 +++ newsyslog.c 12 Nov 2015 21:20:52 -0000 @@ -406,7 +406,7 @@ send_signal(char *pidfile, int signal) warnx("%s pid file: %s", err, pidfile); else if (noaction) (void)printf("kill -%s %ld\n", sys_signame[signal], (long)pid); - else if (kill(pid, signal)) + else if (needroot && kill(pid, signal)) warnx("warning - could not send SIG%s to PID from pid file %s", sys_signame[signal], pidfile); }