Unveil fits nicely into the syslogd privsep model. Unveiled files
authorderaadt <deraadt@openbsd.org>
Tue, 7 Aug 2018 18:36:49 +0000 (18:36 +0000)
committerderaadt <deraadt@openbsd.org>
Tue, 7 Aug 2018 18:36:49 +0000 (18:36 +0000)
commit8d92522dc6063ff7e047485d5bcefec38dc25c4c
tree926c0a4dc48a0e2cfb77f034b78af51911fa122f
parent9b5cd4f05cb6d6032b4a685026cfc7ba8556924b
Unveil fits nicely into the syslogd privsep model.  Unveiled files
include config file "r", utmp "r", /dev "rw", /bin/sh "x" for running
piped commands, and the syslogd binary "x" itself for HUP re-exec upon
config loads with changes.  Also unveiled in the privsep process are
the specific log files being written to.

If a config file reload changes no files, the existing privsep process
keeps running with unveil's to the relevant files (therefore it can
cope with newsyslogd taking files away).  If a new config file is loaded
which changes the output files, the privsep process is restarted with
fork+exec, and installs new unveils as needed.  The safety we gain from
unveil is that we've pigeonholed the privsep file-writer to exactly the
files required.

Help from bluhm for some edge cases.
usr.sbin/syslogd/privsep.c