| #!/sbin/openrc-run |
| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| extra_started_commands='reload reload_auditd reload_rules' |
| description='Linux Auditing System' |
| description_reload='Reload daemon configuration and rules' |
| description_reload_rules='Reload daemon rules' |
| description_reload_auditd='Reload daemon configuration' |
| |
| name='auditd' |
| pidfile='/var/run/auditd.pid' |
| command='/sbin/auditd' |
| |
| start_auditd() { |
| # Env handling taken from the upstream init script |
| if [ -z "$AUDITD_LANG" -o "$AUDITD_LANG" = "none" -o "$AUDITD_LANG" = "NONE" ]; then |
| unset LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE |
| else |
| LANG="$AUDITD_LANG" |
| LC_TIME="$AUDITD_LANG" |
| LC_ALL="$AUDITD_LANG" |
| LC_MESSAGES="$AUDITD_LANG" |
| LC_NUMERIC="$AUDITD_LANG" |
| LC_MONETARY="$AUDITD_LANG" |
| LC_COLLATE="$AUDITD_LANG" |
| export LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE |
| fi |
| unset HOME MAIL USER USERNAME |
| |
| ebegin "Starting ${name}" |
| start-stop-daemon \ |
| --start --quiet --pidfile ${pidfile} \ |
| --exec ${command} -- ${EXTRAOPTIONS} |
| local ret=$? |
| eend $ret |
| return $ret |
| } |
| |
| stop_auditd() { |
| ebegin "Stopping ${name}" |
| start-stop-daemon --stop --quiet --pidfile ${pidfile} |
| local ret=$? |
| eend $ret |
| return $ret |
| } |
| |
| loadfile() { |
| local rules="$1" |
| if [ -n "${rules}" -a -f "${rules}" ]; then |
| einfo "Loading audit rules from ${rules}" |
| /sbin/auditctl -R "${rules}" >/dev/null |
| return $? |
| else |
| return 0 |
| fi |
| } |
| |
| start() { |
| start_auditd |
| local ret=$? |
| if [ $ret -eq 0 -a "${RC_CMD}" != "restart" ]; then |
| loadfile "${RULEFILE_STARTUP}" |
| fi |
| return $ret |
| } |
| |
| reload_rules() { |
| loadfile "${RULEFILE_STARTUP}" |
| } |
| |
| reload_auditd() { |
| ebegin "Reloading ${SVCNAME}" |
| start-stop-daemon --signal HUP \ |
| --exec "${command}" --pidfile "${pidfile}" |
| eend $? |
| } |
| |
| reload() { |
| reload_auditd |
| reload_rules |
| } |
| |
| stop() { |
| [ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_PRE}" |
| stop_auditd |
| local ret=$? |
| [ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_POST}" |
| return $ret |
| } |