Index: head/security/logcheck/Makefile =================================================================== --- head/security/logcheck/Makefile (revision 461821) +++ head/security/logcheck/Makefile (revision 461822) @@ -1,105 +1,105 @@ # Created by: Dan Langille # $FreeBSD$ PORTNAME= logcheck PORTVERSION= 1.3.18 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= security MASTER_SITES= DEBIAN_POOL DISTNAME= ${PORTNAME}_${PORTVERSION} MAINTAINER= yasu@utahime.org COMMENT= Auditing tool for system logs on Unix boxes LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= docbook-to-man>0:textproc/docbook-to-man RUN_DEPENDS= mime-construct:mail/mime-construct \ - lockfile:mail/procmail \ + lockfile-create:sysutils/lockfile-progs \ bash:shells/bash LOGCHECK_USER= logcheck LOGCHECK_GROUP= ${LOGCHECK_USER} USERS= ${LOGCHECK_USER} GROUPS= ${LOGCHECK_GROUP} BASEDIR?= # None. portlint compliance DBDIR= ${BASEDIR}/var/db/${PORTNAME} RUNDIR= ${BASEDIR}/var/run/${PORTNAME} OPTIONS_DEFINE= CRON CRON_DESC= Install cron script automatically .if !defined(BATCH) OPTIONS_DEFAULT=CRON .endif # Enable Perl dependency for logtail script USES= perl5 shebangfix tar:xz WRKSRC= ${WRKDIR}/${DISTNAME:S!_!-!} BINMODE= 755 SUB_LIST+= LOGCHECK_USER=${LOGCHECK_USER} \ LOGCHECK_GROUP=${LOGCHECK_GROUP} \ DBDIR=${DBDIR} CRON=${PORT_OPTIONS:MCRON} SUB_FILES= pkg-install pkg-deinstall pkg-message PLIST_SUB+= LOGCHECK_USER=${LOGCHECK_USER} \ LOGCHECK_GROUP=${LOGCHECK_GROUP} \ DBDIR=${DBDIR} RUNDIR=${RUNDIR} SHEBANG_FILES= src/logcheck src/logtail src/logtail2 src/detectrotate/*.dtr CONFIG_DIRS= cracking.d ignore.d.paranoid ignore.d.server \ ignore.d.workstation violations.d violations.ignore.d DOCS= AUTHORS CHANGES CREDITS TODO docs/README* PORTDOCS= ${DOCS:T} MAN1_FILES= logcheck-test.1 MAN8_FILES= logcheck.8 logtail.8 logtail2.8 REINPLACE_FILES= debian/logcheck.cron.d docs/logcheck.sgml \ docs/logtail2.8 docs/README.logcheck \ docs/README.logcheck-database docs/README.logtail \ etc/logcheck.conf src/logcheck src/logtail2 .include do-build: .for file in ${REINPLACE_FILES} ${REINPLACE_CMD} ${_SUB_LIST_TEMP} ${WRKSRC}/${file} .endfor docbook-to-man ${WRKSRC}/docs/logcheck.sgml > ${WRKSRC}/docs/logcheck.8 ${FIND} ${WRKSRC} -type f \( -name \*.orig -o -name \*.bak \) -delete do-install: @${MKDIR} ${STAGEDIR}${DATADIR}/detectrotate \ ${STAGEDIR}${DBDIR} \ ${STAGEDIR}${DOCSDIR} \ ${STAGEDIR}${ETCDIR} \ ${STAGEDIR}${EXAMPLESDIR} \ ${STAGEDIR}${RUNDIR} ${INSTALL_SCRIPT} ${WRKSRC}/src/logcheck-test ${STAGEDIR}${PREFIX}/bin ${INSTALL_SCRIPT} ${WRKSRC}/src/logcheck ${STAGEDIR}${PREFIX}/sbin ${INSTALL_SCRIPT} ${WRKSRC}/src/logtail ${STAGEDIR}${PREFIX}/sbin ${INSTALL_SCRIPT} ${WRKSRC}/src/logtail2 ${STAGEDIR}${PREFIX}/sbin ${INSTALL_DATA} ${WRKSRC}/etc/logcheck.conf \ ${STAGEDIR}${ETCDIR}/logcheck.conf.sample ${INSTALL_DATA} ${WRKSRC}/etc/logcheck.logfiles \ ${STAGEDIR}${ETCDIR}/logcheck.logfiles.sample .for i in ${CONFIG_DIRS} @${MKDIR} ${STAGEDIR}${ETCDIR}/${i} ${INSTALL_DATA} ${WRKSRC}/rulefiles/linux/${i}/* \ ${STAGEDIR}${ETCDIR}/${i} .endfor ${INSTALL_DATA} ${WRKSRC}/src/detectrotate/*.dtr \ ${STAGEDIR}${DATADIR}/detectrotate ${INSTALL_DATA} ${WRKSRC}/debian/logcheck.cron.d \ ${STAGEDIR}${EXAMPLESDIR}/crontab.in @${ECHO_CMD} '@exec ${CHGRP} -R ${LOGCHECK_GROUP} \ ${ETCDIR:S|^${PREFIX}/|%D/|} \ ${DATADIR:S|^${PREFIX}/|%D/|}' >> ${TMPPLIST} .for i in ${MAN1_FILES} ${INSTALL_MAN} ${WRKSRC}/docs/$i ${STAGEDIR}${MAN1PREFIX}/man/man1 .endfor .for i in ${MAN8_FILES} ${INSTALL_MAN} ${WRKSRC}/docs/$i ${STAGEDIR}${MAN8PREFIX}/man/man8 .endfor cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR} .include Index: head/security/logcheck/files/patch-src_logcheck =================================================================== --- head/security/logcheck/files/patch-src_logcheck (revision 461821) +++ head/security/logcheck/files/patch-src_logcheck (revision 461822) @@ -1,153 +1,95 @@ ---- src/logcheck.orig 2017-07-11 17:32:13 UTC +--- src/logcheck.orig 2017-12-21 16:33:24 UTC +++ src/logcheck -@@ -24,17 +24,10 @@ +@@ -24,16 +24,16 @@ if [ `id -u` = 0 ]; then echo "logcheck should not be run as root. Use su to invoke logcheck:" - echo "su -s /bin/bash -c \"/usr/sbin/logcheck${@:+ $@}\" logcheck" + echo "su -m %%LOGCHECK_USER%% -c \"%%LOCALBASE%%/bin/bash %%PREFIX%%/sbin/logcheck${@:+ $@}\"" echo "Or use sudo: sudo -u logcheck logcheck${@:+ $@}." # you may want to uncomment that hack to let logcheck invoke itself. - # su -s /bin/bash -c "$0 $*" logcheck -- exit 1 --fi -- ++ # su -s %%LOCALBASE%%/bin/bash -c "$0 $*" logcheck + exit 1 + fi + -if [ ! -f /usr/bin/lockfile-create -o \ - ! -f /usr/bin/lockfile-remove -o \ - ! -f /usr/bin/lockfile-touch ]; then -- echo "fatal: lockfile-progs is a prerequisite for logcheck, and was not found." -+ # su -s %%LOCALBASE%%/bin/bash -c "$0 $*" logcheck ++if [ ! -f %%PREFIX%%/bin/lockfile-create -o \ ++ ! -f %%PREFIX%%/bin/lockfile-remove -o \ ++ ! -f %%PREFIX%%/bin/lockfile-touch ]; then + echo "fatal: lockfile-progs is a prerequisite for logcheck, and was not found." exit 1 fi - -@@ -69,13 +62,13 @@ EVENTSSUBJECT="System Events" +@@ -69,13 +69,13 @@ EVENTSSUBJECT="System Events" ADDTAG="no" # Set the default paths -RULEDIR="/etc/logcheck" -CONFFILE="/etc/logcheck/logcheck.conf" -STATEDIR="/var/lib/logcheck" -LOGFILES_LIST="/etc/logcheck/logcheck.logfiles" -LOGFILES_LIST_D="/etc/logcheck/logcheck.logfiles.d" -LOGFILE_FALLBACK="/var/log/syslog" -LOGTAIL="/usr/sbin/logtail2" +RULEDIR="%%ETCDIR%%" +CONFFILE="%%ETCDIR%%/logcheck.conf" +STATEDIR="%%DBDIR%%" +LOGFILES_LIST="%%ETCDIR%%/logcheck.logfiles" +LOGFILES_LIST_D="%%ETCDIR%%/logcheck.logfiles.d" +LOGFILE_FALLBACK="/var/log/messages" +LOGTAIL="%%PREFIX%%/sbin/logtail2" CAT="/bin/cat" SYSLOG_SUMMARY="/usr/bin/syslog-summary" -@@ -90,20 +83,15 @@ FQDN=0 +@@ -90,7 +90,7 @@ FQDN=0 SORTUNIQ=0 SUPPORT_CRACKING_IGNORE=0 SYSLOGSUMMARY=0 -LOCKDIR=/run/lock/logcheck +LOCKDIR=/var/run/logcheck LOCKFILE="$LOCKDIR/logcheck" # Carry out the clean up tasks - cleanup() { - -- if [ -n "$LOCK" ]; then -- debug "cleanup: Killing lockfile-touch - $LOCK" -- kill "$LOCK" && unset LOCK -- fi -- -- if [ -f "$LOCKFILE.lock" ]; then -- debug "cleanup: Removing lockfile: $LOCKFILE.lock" -- lockfile-remove "$LOCKFILE" -+ if [ -f "$LOCKFILE" ]; then -+ debug "cleanup: Removing lockfile: $LOCKFILE" -+ rm -f "$LOCKFILE" - fi - - if [ -d "$TMPDIR" ]; then -@@ -145,14 +133,9 @@ error() { - if [ "$2" = "noclean" ]; then - debug "error: Not removing lockfile" - else -- if [ -n "$LOCK" ]; then -- debug "error: Killing lockfile-touch - $LOCK" -- kill "$LOCK" && unset LOCK -- fi -- -- if [ -f "$LOCKFILE.lock" ]; then -- debug "error: Removing lockfile: $LOCKFILE.lock" -- lockfile-remove "$LOCKFILE" -+ if [ -f "$LOCKFILE" ]; then -+ debug "error: Removing lockfile: $LOCKFILE" -+ rm -f "$LOCKFILE" - fi - - fi -@@ -171,7 +154,7 @@ $message +@@ -171,7 +171,7 @@ $message ${TMPDIR:+Check temporary directory: $TMPDIR } Also verify that the logcheck user can read all files referenced in -/etc/logcheck/logcheck.logfiles! +%%ETCDIR%%/logcheck.logfiles! $(export) EOF -@@ -223,7 +206,7 @@ cleanrules() { +@@ -223,7 +223,7 @@ cleanrules() { error "Couldn't read $x" fi done - for rulefile in $(run-parts --list "$dir"); do + for rulefile in $(ls -1R "$dir"); do rulefile="$(basename "$rulefile")" if [ -f "${dir}/${rulefile}" ]; then debug "cleanrules: ${dir}/${rulefile}" -@@ -538,9 +521,9 @@ fi +@@ -538,9 +538,9 @@ fi # Hostname either fully qualified or not. if [ "$FQDN" -eq 1 ]; then - HOSTNAME="$(hostname --fqdn 2>/dev/null)" + HOSTNAME="$(hostname -f 2>/dev/null)" else - HOSTNAME="$(hostname --short 2>/dev/null)" + HOSTNAME="$(hostname -s 2>/dev/null)" fi # Now check for the other options -@@ -623,30 +606,25 @@ fi - - trap 'cleanup' 0 - --debug "Trying to get lockfile: $LOCKFILE.lock" -+debug "Trying to get lockfile: $LOCKFILE" - if [ ! -d "$LOCKDIR" ]; then - mkdir -m 0755 "$LOCKDIR" - fi --lockfile-create --retry 1 "$LOCKFILE" > /dev/null 2>&1 -+lockfile -r 1 "$LOCKFILE" > /dev/null 2>&1 - - - if [ $? -eq 1 ]; then - trap 0 -- if [ -e "${LOCKFILE}.lock" ]; then -+ if [ -e "${LOCKFILE}" ]; then - error "Another logcheck process is still running" "noclean" - else -- error "Failed to get lockfile: $LOCKFILE.lock" "noclean" -+ error "Failed to get lockfile: $LOCKFILE" "noclean" - fi -- --else -- debug "Running lockfile-touch $LOCKFILE.lock" -- lockfile-touch "$LOCKFILE" & -- LOCK="$!" +@@ -645,8 +645,8 @@ else fi # Create the secure temporary directory or exit -TMPDIR="$(mktemp -d -p "${TMP:-/tmp}" logcheck.XXXXXX)" \ - || TMPDIR="$(mktemp -d -p /var/tmp logcheck.XXXXXX)" \ +TMPDIR="$(mktemp -d ${TMP:-/tmp}/logcheck.XXXXXX)" \ + || TMPDIR="$(mktemp -d /var/tmp/logcheck.XXXXXX)" \ || error "Could not create temporary directory" # Now clean the rulefiles in the directories