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)