diff --git a/sys-process/audit/Manifest b/sys-process/audit/Manifest new file mode 100644 index 0000000..6614342 --- /dev/null +++ b/sys-process/audit/Manifest @@ -0,0 +1 @@ +DIST audit-2.3.6.tar.gz 929688 SHA256 e4309bae77c5cc4b39684c0d951e7dd7502837a60405c95ebe27b5370d5e2545 SHA512 0a374570390b53163dd2bcdec216f14f33164e764a206b705e46736a42825a74073862d682464486a0211bf4ced99aafd8a97132174fde2a2f531acbdace8904 WHIRLPOOL 6d5f3632016581517bc849edcbfad6596c5d75dfd2e2190716be6acca4d8aed8790a5fb6365a4878beab9cfb618d3c53bceedf7f2df699e43aa83a493771bd2e diff --git a/sys-process/audit/audit-2.3.6.ebuild b/sys-process/audit/audit-2.3.6.ebuild new file mode 100644 index 0000000..dfd16b3 --- /dev/null +++ b/sys-process/audit/audit-2.3.6.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="5" +PYTHON_COMPAT=( python2_7 ) + +inherit autotools multilib toolchain-funcs python-r1 linux-info eutils + +DESCRIPTION="Userspace utilities for storing and processing auditing records" +HOMEPAGE="http://people.redhat.com/sgrubb/audit/" +SRC_URI="http://people.redhat.com/sgrubb/audit/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="apparmor ldap python tcpd" +# Testcases are pretty useless as they are built for RedHat users/groups and +# kernels. +RESTRICT="test" + +RDEPEND="apparmor? ( sys-apps/apparmor ) + ldap? ( net-nds/openldap ) + python? ( ${PYTHON_DEPS} ) + tcpd? ( sys-apps/tcp-wrappers ) + sys-libs/libcap-ng" +DEPEND="${RDEPEND} + python? ( dev-lang/swig ) + >=sys-kernel/linux-headers-2.6.34" +# Do not use os-headers as this is linux specific + +CONFIG_CHECK="~AUDIT" +PYTHON_DIRS="bindings/python swig" + +pkg_setup() { + linux-info_pkg_setup +} + +src_prepare() { + if ! use ldap; then + sed -i \ + -e '/^AC_OUTPUT/s,audisp/plugins/zos-remote/Makefile,,g' \ + "${S}"/configure.ac || die + sed -i \ + -e '/^SUBDIRS/s,zos-remote,,g' \ + "${S}"/audisp/plugins/Makefile.am || die + fi + + # Don't build static version of Python module. + epatch "${FILESDIR}"/${PN}-2.1.3-python.patch + + # glibc/kernel upstreams suck with both defining ia64_fpreg + # This patch is a horribly workaround that is only valid as long as you + # don't need the OTHER definitions in fpu.h. + epatch "${FILESDIR}"/${PN}-2.1.3-ia64-compile-fix.patch + + # Python bindings are built/installed manually. + sed -e "/^SUBDIRS =/s/ python//" -i bindings/Makefile.am + sed -e "/^SUBDIRS .*=/s/ swig//" -i Makefile.am + + # Regenerate autotooling + eautoreconf + + # Disable byte-compilation of Python modules. + echo "#!/bin/sh" > py-compile + + # Bug 352198: Avoid parallel build fail + cd "${S}"/src/mt + [[ ! -s private.h ]] && ln -s ../../lib/private.h . +} + +src_configure() { + econf \ + --sbindir=/sbin \ + --enable-systemd \ + --without-prelude \ + $(use_with arm64 aarch64) \ + $(use_with alpha) \ + $(use_with arm) \ + $(use_with apparmor) \ + $(use_with python) \ + $(use_with tcpd libwrap) +} + +src_compile_python() { + python_copy_sources ${PYTHON_DIRS} + + building() { + emake \ + -C "${dir}" \ + VPATH="${BUILD_DIR}"/"${dir}" \ + pyexecdir="$(python_get_sitedir)" + } + local dir + for dir in ${PYTHON_DIRS}; do + python_foreach_impl building + done +} + +src_compile() { + default + use python && src_compile_python +} + +src_install_python() { + installation() { + emake \ + -C "${dir}" \ + VPATH="${BUILD_DIR}"/"${dir}" \ + DESTDIR="${D}" \ + pyexecdir="$(python_get_sitedir)" \ + install + } + local dir + for dir in ${PYTHON_DIRS}; do + python_foreach_impl installation + done +} + +src_install() { + emake DESTDIR="${D}" install || die + use python && src_install_python + + dodoc AUTHORS ChangeLog README* THANKS TODO + docinto contrib + dodoc contrib/{*.rules,avc_snap,skeleton.c} + docinto contrib/plugin + dodoc contrib/plugin/* + + newinitd "${FILESDIR}"/auditd-init.d-2.3.6 auditd + newconfd "${FILESDIR}"/auditd-conf.d-2.3.6 auditd + + # things like shadow use this so we need to be in / + gen_usr_ldscript -a audit auparse + + [ -f "${D}"/sbin/audisp-remote ] && \ + dodir /usr/sbin && \ + mv "${D}"/{sbin,usr/sbin}/audisp-remote || die + + # Gentoo rules + insinto /etc/audit/ + newins "${FILESDIR}"/audit.rules-2.1.3 audit.rules + doins "${FILESDIR}"/audit.rules.stop* + + # audit logs go here + keepdir /var/log/audit/ + + # Security + lockdown_perms "${D}" + + prune_libtool_files + use python && python_foreach_impl python_optimize +} + +pkg_postinst() { + lockdown_perms "${ROOT}" +} + +lockdown_perms() { + # upstream wants these to have restrictive perms + basedir="$1" + chmod 0750 "${basedir}"/sbin/au{ditctl,report,dispd,ditd,search,trace} 2>/dev/null + chmod 0750 "${basedir}"/var/log/audit/ 2>/dev/null + chmod 0640 "${basedir}"/etc/{audit/,}{auditd.conf,audit.rules*} 2>/dev/null +} diff --git a/sys-process/audit/files/audit-2.1.3-ia64-compile-fix.patch b/sys-process/audit/files/audit-2.1.3-ia64-compile-fix.patch new file mode 100644 index 0000000..3ec60fb --- /dev/null +++ b/sys-process/audit/files/audit-2.1.3-ia64-compile-fix.patch @@ -0,0 +1,212 @@ +diff -Nuar -X exclude audit-2.1.3.orig/configure.ac audit-2.1.3/configure.ac +--- audit-2.1.3.orig/configure.ac 2011-08-15 17:30:58.000000000 +0000 ++++ audit-2.1.3/configure.ac 2012-12-18 20:03:22.000000000 +0000 +@@ -79,6 +79,9 @@ + esac + fi + ++AC_CHECK_HEADER([asm/ptrace.h], [AC_DEFINE([HAVE_ASM_PTRACE_H],[],[Define to 1 if you have asm/ptrace.h])], []) ++AC_CHECK_HEADER([linux/ptrace.h], [AC_DEFINE([HAVE_LINUX_PTRACE_H],[],[Define to 1 if you have linux/ptrace.h])], []) ++ + #gssapi + AC_ARG_ENABLE(gssapi_krb5, + [AS_HELP_STRING([--enable-gssapi-krb5],[Enable GSSAPI Kerberos 5 support @<:@default=no@:>@])], +diff -Nuar -X exclude audit-2.1.3.orig/src/auditctl.c audit-2.1.3/src/auditctl.c +--- audit-2.1.3.orig/src/auditctl.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditctl.c 2012-12-18 20:21:21.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include /* strdup needs xopen define */ +diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-config.c audit-2.1.3/src/auditd-config.c +--- audit-2.1.3.orig/src/auditd-config.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditd-config.c 2012-12-18 20:21:23.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-dispatch.c audit-2.1.3/src/auditd-dispatch.c +--- audit-2.1.3.orig/src/auditd-dispatch.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditd-dispatch.c 2012-12-18 20:21:27.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-event.c audit-2.1.3/src/auditd-event.c +--- audit-2.1.3.orig/src/auditd-event.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditd-event.c 2012-12-18 20:21:29.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-listen.c audit-2.1.3/src/auditd-listen.c +--- audit-2.1.3.orig/src/auditd-listen.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditd-listen.c 2012-12-18 20:21:31.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-reconfig.c audit-2.1.3/src/auditd-reconfig.c +--- audit-2.1.3.orig/src/auditd-reconfig.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditd-reconfig.c 2012-12-18 20:21:33.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/auditd-sendmail.c audit-2.1.3/src/auditd-sendmail.c +--- audit-2.1.3.orig/src/auditd-sendmail.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditd-sendmail.c 2012-12-18 20:21:34.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include // for access() + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/auditd.c audit-2.1.3/src/auditd.c +--- audit-2.1.3.orig/src/auditd.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/auditd.c 2012-12-18 20:21:38.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/autrace.c audit-2.1.3/src/autrace.c +--- audit-2.1.3.orig/src/autrace.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/autrace.c 2012-12-18 20:21:43.000000000 +0000 +@@ -21,6 +21,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/src/delete_all.c audit-2.1.3/src/delete_all.c +--- audit-2.1.3.orig/src/delete_all.c 2011-08-15 17:31:00.000000000 +0000 ++++ audit-2.1.3/src/delete_all.c 2012-12-18 20:21:48.000000000 +0000 +@@ -20,6 +20,7 @@ + * Steve Grubb + */ + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar -X exclude audit-2.1.3.orig/lib/fixup.h audit-2.1.3/lib/fixup.h +--- audit-2.1.3.orig/lib/fixup.h 1970-01-01 00:00:00.000000000 +0000 ++++ audit-2.1.3/lib/fixup.h 2012-12-18 20:21:02.000000000 +0000 +@@ -0,0 +1,17 @@ ++#ifndef _AUDIT_IA64_FIXUP_H_ ++#define _AUDIT_IA64_FIXUP_H_ ++ ++#ifdef __ia64__ /* what a pos */ ++# include ++# define _ASM_IA64_FPU_H ++#endif ++#include ++/* ++#ifdef HAVE_ASM_PTRACE_H ++# include ++#endif ++#ifdef HAVE_LINUX_PTRACE_H ++# include ++#endif ++*/ ++#endif +--- audit-2.1.3/src/ausearch.c 2012-12-22 03:09:54.000000000 +0000 ++++ audit-2.1.3/src/ausearch.c 2012-12-22 03:10:02.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar audit-2.1.3.orig/audisp/audispd.c audit-2.1.3/audisp/audispd.c +--- audit-2.1.3.orig/audisp/audispd.c 2011-08-15 17:30:59.000000000 +0000 ++++ audit-2.1.3/audisp/audispd.c 2012-12-22 03:25:15.000000000 +0000 +@@ -21,6 +21,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar audit-2.1.3.orig/audisp/plugins/prelude/audisp-prelude.c audit-2.1.3/audisp/plugins/prelude/audisp-prelude.c +--- audit-2.1.3.orig/audisp/plugins/prelude/audisp-prelude.c 2011-08-15 17:30:59.000000000 +0000 ++++ audit-2.1.3/audisp/plugins/prelude/audisp-prelude.c 2012-12-22 03:25:20.000000000 +0000 +@@ -21,6 +21,8 @@ + * + */ + ++#include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar audit-2.1.3.orig/audisp/plugins/remote/audisp-remote.c audit-2.1.3/audisp/plugins/remote/audisp-remote.c +--- audit-2.1.3.orig/audisp/plugins/remote/audisp-remote.c 2011-08-15 17:30:59.000000000 +0000 ++++ audit-2.1.3/audisp/plugins/remote/audisp-remote.c 2012-12-22 03:25:22.000000000 +0000 +@@ -22,6 +22,7 @@ + */ + + #include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar audit-2.1.3.orig/contrib/plugin/audisp-example.c audit-2.1.3/contrib/plugin/audisp-example.c +--- audit-2.1.3.orig/contrib/plugin/audisp-example.c 2011-08-15 17:31:02.000000000 +0000 ++++ audit-2.1.3/contrib/plugin/audisp-example.c 2012-12-22 03:25:27.000000000 +0000 +@@ -37,6 +37,8 @@ + */ + + #define _GNU_SOURCE ++#include "config.h" ++#include "fixup.h" + #include + #include + #include +diff -Nuar audit-2.1.3.orig/contrib/skeleton.c audit-2.1.3/contrib/skeleton.c +--- audit-2.1.3.orig/contrib/skeleton.c 2011-08-15 17:31:02.000000000 +0000 ++++ audit-2.1.3/contrib/skeleton.c 2012-12-22 03:25:40.000000000 +0000 +@@ -7,6 +7,8 @@ + * gcc skeleton.c -o skeleton -laudit + */ + ++#include "config.h" ++#include "fixup.h" + #include + #include + #include diff --git a/sys-process/audit/files/audit-2.1.3-python.patch b/sys-process/audit/files/audit-2.1.3-python.patch new file mode 100644 index 0000000..a9feec1 --- /dev/null +++ b/sys-process/audit/files/audit-2.1.3-python.patch @@ -0,0 +1,24 @@ +diff -Nuar --exclude '*.orig' audit-2.1.3.orig/bindings/python/Makefile.am audit-2.1.3/bindings/python/Makefile.am +--- audit-2.1.3.orig/bindings/python/Makefile.am 2011-08-15 17:31:01.000000000 +0000 ++++ audit-2.1.3/bindings/python/Makefile.am 2011-09-10 19:01:36.974983756 +0000 +@@ -27,5 +27,6 @@ + + auparse_la_SOURCES = auparse_python.c + auparse_la_CPPFLAGS = -I$(top_srcdir)/auparse $(AM_CPPFLAGS) -I/usr/include/python$(PYTHON_VERSION) -fno-strict-aliasing +-auparse_la_LDFLAGS = -module -avoid-version -Wl,-z,relro ++auparse_la_CFLAGS = -shared ++auparse_la_LDFLAGS = -module -avoid-version -shared -Wl,-z,relro + auparse_la_LIBADD = ../../auparse/libauparse.la ../../lib/libaudit.la +diff -Nuar --exclude '*.orig' audit-2.1.3.orig/swig/Makefile.am audit-2.1.3/swig/Makefile.am +--- audit-2.1.3.orig/swig/Makefile.am 2011-08-15 17:31:03.000000000 +0000 ++++ audit-2.1.3/swig/Makefile.am 2011-09-10 19:02:14.095067690 +0000 +@@ -28,7 +28,8 @@ + pyexec_PYTHON = audit.py + pyexec_LTLIBRARIES = _audit.la + pyexec_SOLIBRARIES = _audit.so +-_audit_la_LDFLAGS = -module -avoid-version -Wl,-z,relro ++_audit_la_CFLAGS = -shared ++_audit_la_LDFLAGS = -module -avoid-version -shared -Wl,-z,relro + _audit_la_HEADERS: $(top_builddir)/config.h + _audit_la_DEPENDENCIES =${top_srcdir}/lib/libaudit.h ${top_builddir}/lib/libaudit.la + nodist__audit_la_SOURCES = audit_wrap.c diff --git a/sys-process/audit/files/audit.rules-2.1.3 b/sys-process/audit/files/audit.rules-2.1.3 new file mode 100644 index 0000000..b2b4f02 --- /dev/null +++ b/sys-process/audit/files/audit.rules-2.1.3 @@ -0,0 +1,26 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-process/audit/files/audit.rules-2.1.3,v 1.1 2011/09/11 02:58:55 robbat2 Exp $ +# +# This file contains the auditctl rules that are loaded +# whenever the audit daemon is started via the initscripts. +# The rules are simply the parameters that would be passed +# to auditctl. + +# First rule - delete all +# This is to clear out old rules, so we don't append to them. +-D + +# Feel free to add below this line. See auditctl man page + +# The following rule would cause all of the syscalls listed to be ignored in logging. +-a exit,never -F arch=b32 -S read -S write -S open -S fstat -S mmap -S brk -S munmap -S nanosleep -S fcntl -S close -S dup2 -S rt_sigaction -S stat +-a exit,never -F arch=b64 -S read -S write -S open -S fstat -S mmap -S brk -S munmap -S nanosleep -S fcntl -S close -S dup2 -S rt_sigaction -S stat + +# The following rule would cause the capture of all systems not caught above. +# -a exit,always -S all + +# Increase the buffers to survive stress events +-b 8192 + +# vim:ft=conf: diff --git a/sys-process/audit/files/audit.rules.stop.post b/sys-process/audit/files/audit.rules.stop.post new file mode 100644 index 0000000..34db08c --- /dev/null +++ b/sys-process/audit/files/audit.rules.stop.post @@ -0,0 +1,13 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-process/audit/files/audit.rules.stop.post,v 1.1 2006/06/22 07:41:46 robbat2 Exp $ +# +# This file contains the auditctl rules that are loaded immediately after the +# audit deamon is stopped via the initscripts. +# The rules are simply the parameters that would be passed +# to auditctl. + +# Not used for the default Gentoo configuration as of v1.2.3 +# Paranoid security types might wish to reconfigure kauditd here. + +# vim:ft=conf: diff --git a/sys-process/audit/files/audit.rules.stop.pre b/sys-process/audit/files/audit.rules.stop.pre new file mode 100644 index 0000000..c5fb4f9 --- /dev/null +++ b/sys-process/audit/files/audit.rules.stop.pre @@ -0,0 +1,16 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-process/audit/files/audit.rules.stop.pre,v 1.2 2011/09/11 02:58:55 robbat2 Exp $ +# +# This file contains the auditctl rules that are loaded immediately before the +# audit deamon is stopped via the initscripts. +# The rules are simply the parameters that would be passed +# to auditctl. + +# auditd is stopping, don't capture events anymore +-D + +# Disable kernel generating audit events +-e 0 + +# vim:ft=conf: diff --git a/sys-process/audit/files/auditd-conf.d-2.3.6 b/sys-process/audit/files/auditd-conf.d-2.3.6 new file mode 100644 index 0000000..46c1f31 --- /dev/null +++ b/sys-process/audit/files/auditd-conf.d-2.3.6 @@ -0,0 +1,30 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-process/audit/files/auditd-conf.d-2.1.3,v 1.1 2011/09/11 02:58:55 robbat2 Exp $ + +# Configuration options for auditd +# -f for foreground mode +# There are some other options as well, but you'll have to look in the source +# code to find them as they aren't ready for use yet. +EXTRAOPTIONS='' + +# Audit rules file to run after starting auditd +RULEFILE_STARTUP=/etc/audit/audit.rules + +# Audit rules file to run before and after stopping auditd +RULEFILE_STOP_PRE=/etc/audit/audit.rules.stop.pre +RULEFILE_STOP_POST=/etc/audit/audit.rules.stop.post + +# If you want to enforce a certain locale for auditd, +# uncomment one of the next lines: +#AUDITD_LANG=none +AUDITD_LANG=C +#AUDITD_LANG=en_US +#AUDITD_LANG=en_US.UTF-8 + +# This option determines whether or not to call augenrules to compile the +# audit.rule file from /etc/audit/rules.d. The default is "no" so that nothing +# happens to existing rules. When setting this up, any existing rules need to +# be copied into /etc/audit/rules.d or it will be lost when audit.rule gets +# overwritten. +USE_AUGENRULES="no" diff --git a/sys-process/audit/files/auditd-init.d-2.3.6 b/sys-process/audit/files/auditd-init.d-2.3.6 new file mode 100644 index 0000000..47078f9 --- /dev/null +++ b/sys-process/audit/files/auditd-init.d-2.3.6 @@ -0,0 +1,100 @@ +#!/sbin/runscript +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +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}" 1>/dev/null + return $? + else + return 0 + fi +} + +start() { + start_auditd + local ret=$? + if [ $ret -eq 0 -a "${RC_CMD}" != "restart" ]; then + touch /var/lock/${name} + if yesno ${USE_AUGENRULES:-no}; then + test -d /etc/audit/rules.d && /sbin/augenrules + fi + loadfile "${RULEFILE_STARTUP}" + fi + return $ret +} + +reload_rules() { + loadfile "${RULEFILE_STARTUP}" +} + +reload_auditd() { + [ -f ${pidfile} ] && kill -HUP `cat ${pidfile}` +} + +reload() { + reload_auditd + reload_rules +} + +stop() { + [ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_PRE}" + stop_auditd + rm -f /var/lock/${name} + local ret=$? + [ "${RC_CMD}" != "restart" ] && loadfile "${RULEFILE_STOP_POST}" + return $ret +} + +# This is a special case, we do not want to touch the rules at all +restart() { + stop_auditd + start_auditd +}