X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Finit%2Fupdate.sh;h=65d1691027738f4731e0b4c74d922d82af4ff7fc;hb=HEAD;hp=a822f3a220e5c34033920d7b1e9658450c73b7d1;hpb=914feba5d54f979cd5d7e69c349c3d01f630042a;p=ossec-hids.git diff --git a/src/init/update.sh b/src/init/update.sh index a822f3a..65d1691 100755 --- a/src/init/update.sh +++ b/src/init/update.sh @@ -1,22 +1,17 @@ #!/bin/sh # Shell script update functions for the OSSEC HIDS # Author: Daniel B. Cid -# Last modification: May 24, 2006 - FALSE="false" TRUE="true" - -########## -# isUpdate -########## isUpdate() { ls -la ${OSSEC_INIT} > /dev/null 2>&1 if [ $? = 0 ]; then . ${OSSEC_INIT} if [ "X$DIRECTORY" = "X" ]; then + echo "# ($FUNCNAME) ERROR: The variable DIRECTORY wasn't set" 1>&2 echo "${FALSE}" return 1; fi @@ -24,39 +19,32 @@ isUpdate() if [ $? = 0 ]; then echo "${TRUE}" return 0; - fi + fi fi - echo "${FALSE}" - return 1; + return 1; } - -########## -# doUpdatecleanup -########## doUpdatecleanup() { . ${OSSEC_INIT} if [ "X$DIRECTORY" = "X" ]; then - # Invalid ossec init file. Unable to update + echo "# ($FUNCNAME) ERROR: The variable DIRECTORY wasn't set." 1>&2 echo "${FALSE}" return 1; fi - + # Checking if the directory is valid. - echo $DIRECTORY | grep -E "^/[a-zA-Z0-9/-]{3,128}$" > /dev/null 2>&1 + _dir_pattern_update="^/[-a-zA-Z0-9/\.-]{3,128}$" + echo $DIRECTORY | grep -E "$_dir_pattern_update" > /dev/null 2>&1 if [ ! $? = 0 ]; then + echo "# ($FUNCNAME) ERROR: directory name ($DIRECTORY) doesn't match the pattern $_dir_pattern_update" 1>&2 echo "${FALSE}" return 1; fi } - -########## -# getPreinstalled -########## getPreinstalled() { . ${OSSEC_INIT} @@ -67,21 +55,17 @@ getPreinstalled() echo "agent" return 0; fi - + cat $DIRECTORY/etc/ossec.conf | grep "" > /dev/null 2>&1 if [ $? = 0 ]; then echo "server" return 0; fi - + echo "local" - return 0; + return 0; } - -########## -# getPreinstalledDir -########## getPreinstalledDir() { . ${OSSEC_INIT} @@ -89,26 +73,18 @@ getPreinstalledDir() return 0; } - -########## -# UpdateStartOSSEC -########## UpdateStartOSSEC() { . ${OSSEC_INIT} - - $DIRECTORY/bin/ossec-control start -} + $DIRECTORY/bin/ossec-control start +} -########## -# UpdateStopOSSEC -########## UpdateStopOSSEC() { . ${OSSEC_INIT} - - $DIRECTORY/bin/ossec-control stop + + $DIRECTORY/bin/ossec-control stop # We also need to remove all syscheck queue file (format changed) if [ "X$VERSION" = "X0.9-3" ]; then @@ -118,10 +94,6 @@ UpdateStopOSSEC() rm -f $DIRECTORY/queue/syscheck/.* > /dev/null 2>&1 } - -########## -# UpdateOSSECRules -########## UpdateOSSECRules() { . ${OSSEC_INIT} @@ -130,13 +102,28 @@ UpdateOSSECRules() # Backing up the old config cp -pr ${OSSEC_CONF_FILE} "${OSSEC_CONF_FILE}.$$.bak" - - cat ${OSSEC_CONF_FILE}|grep -v "" |grep -v "" |grep -v "" > "${OSSEC_CONF_FILE}.$$.tmp" + # Getting rid of old rules entries + grep -Ev "|||||rules global entry" ${OSSEC_CONF_FILE} > "${OSSEC_CONF_FILE}.$$.tmp" + + # Customer decoder, decoder_dir, rule_dir are carried over during upgrade + grep -E '|' ${OSSEC_CONF_FILE} | grep -v '" >> ${OSSEC_CONF_FILE} - cat ${RULES_TEMPLATE} >> ${OSSEC_CONF_FILE} + grep -v '' ${RULES_TEMPLATE} >> ${OSSEC_CONF_FILE} + cat "${OSSEC_CONF_FILE}.$$.tmp2" >> ${OSSEC_CONF_FILE} + echo "" >> ${OSSEC_CONF_FILE} echo " " >> ${OSSEC_CONF_FILE} -} + rm "${OSSEC_CONF_FILE}.$$.tmp2" +} +