91 lines
2.0 KiB
Groff
91 lines
2.0 KiB
Groff
#!/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
|
|
}
|