diff --git a/policy/modules/system/logging.if b/policy/modules/system/logging.if index b2bba9849..9215579e8 100644 --- a/policy/modules/system/logging.if +++ b/policy/modules/system/logging.if @@ -427,6 +427,24 @@ interface(`logging_domtrans_syslog',` ') ') +######################################## +## +## Allow specified domain to start/stop syslog units +## +## +## +## Domain allowed access. +## +## +# +interface(`logging_startstop_syslog',` + gen_require(` + type syslogd_unit_t; + class service { start stop }; + ') + allow $1 syslogd_unit_t:service { start stop }; +') + ######################################## ## ## Allow specified domain to check status of syslog unit diff --git a/policy/modules/system/logging.te b/policy/modules/system/logging.te index 15ae581ca..64406f650 100644 --- a/policy/modules/system/logging.te +++ b/policy/modules/system/logging.te @@ -529,6 +529,9 @@ ifdef(`init_systemd',` allow syslogd_t self:capability { chown setgid setuid sys_ptrace }; allow syslogd_t self:netlink_audit_socket { getattr getopt read setopt write }; + # remove /run/log/journal when switching to permanent storage + allow syslogd_t var_log_t:dir rmdir; + kernel_getattr_dgram_sockets(syslogd_t) kernel_read_ring_buffer(syslogd_t) kernel_rw_stream_sockets(syslogd_t)