1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
#!/bin/sh
#
# auditd This starts and stops auditd
#
# chkconfig: 2345 11 88
# description: This starts the Linux Auditing System Daemon, \
# which collects security related events in a dedicated \
# audit log. If this daemon is turned off, audit events \
# will be sent to syslog.
#
# processname: /sbin/auditd
# config: /etc/sysconfig/auditd
# config: /etc/audit/auditd.conf
# pidfile: /var/run/auditd.pid
#
# Return values according to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
PATH=/sbin:/bin:/usr/bin:/usr/sbin
prog="auditd"
# Source function library.
. /etc/init.d/functions
# Allow anyone to run status
if [ "$1" = "status" ] ; then
status $prog
RETVAL=$?
exit $RETVAL
fi
# Check that we are root ... so non-root users stop here
test $(id -u) = 0 || exit 4
# Check config
test -f /etc/sysconfig/auditd && . /etc/sysconfig/auditd
RETVAL=0
start(){
test -x /sbin/auditd || exit 5
test -f /etc/audit/auditd.conf || exit 6
printf "Starting $prog: "
# Localization for auditd is controlled in /etc/synconfig/auditd
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
daemon $prog "$EXTRAOPTIONS"
RETVAL=$?
echo
if test $RETVAL = 0 ; then
touch /var/lock/subsys/auditd
# Prepare the default rules
if test x"$USE_AUGENRULES" != "x" ; then
if test "`echo $USE_AUGENRULES | tr 'NO' 'no'`" != "no"
then
test -d /etc/audit/rules.d && /sbin/augenrules
fi
fi
# Load the default rules
test -f /etc/audit/audit.rules && /sbin/auditctl -R /etc/audit/audit.rules >/dev/null
fi
return $RETVAL
}
stop(){
printf "Stopping $prog: "
killproc $prog
RETVAL=$?
echo
rm -f /var/lock/subsys/auditd
# Remove watches so shutdown works cleanly
if test x"$AUDITD_CLEAN_STOP" != "x" ; then
if test "`echo $AUDITD_CLEAN_STOP | tr 'NO' 'no'`" != "no"
then
/sbin/auditctl -R /etc/audit/audit-stop.rules >/dev/null
fi
fi
return $RETVAL
}
reload(){
test -f /etc/audit/auditd.conf || exit 6
printf "Reloading configuration: "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
rotate(){
printf "Rotating logs: "
killproc $prog -USR1
RETVAL=$?
echo
return $RETVAL
}
resume(){
printf "Resuming logging: "
killproc $prog -USR2
RETVAL=$?
echo
return $RETVAL
}
restart(){
test -f /etc/audit/auditd.conf || exit 6
stop
start
}
state(){
state_file="/var/run/auditd.state"
printf "Getting auditd internal state: "
killproc $prog -CONT
RETVAL=$?
printf "\n"
if [ $? -eq 0 ] ; then
if [ -e $state_file ] ; then
cat $state_file
fi
fi
echo
return $RETVAL
}
condrestart(){
[ -e /var/lock/subsys/auditd ] && restart
return 0
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload|force-reload)
reload
;;
rotate)
rotate
;;
resume)
resume
;;
state)
state
;;
condrestart|try-restart)
condrestart
;;
*)
echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|rotate|resume}"
RETVAL=3
esac
exit $RETVAL
|