فایل اجرایی یا پسوند نداره یا اینکه آخرش sh. یا run. یا bin. و ... از اینجور چیزاست.
اینجور که پیداس فایل اجراییش نیست.
اگه اون installی که هست پوشه است برو ببین توش چی هست و اگه فایل متنیه، متنش رو بزار تو پستت.
این توی پوشه اصلی آویرا و تو همون فایل اینستال که نوشتین بصورت متن :
#!/bin/sh
#
# Install AntiVir for UNIX
#
# Copyright (c) 2010 AVIRA GmbH
#
set_commands()
{
case "${OS}" in
sunos)
ECHO="sh `pwd`/script/echo_sunos"
GROUPADD="groupadd"
;;
freebsd)
ECHO="echo"
GROUPADD="pw groupadd"
;;
*)
ECHO="echo"
GROUPADD="groupadd"
;;
esac
}
getDEV()
{
case "${OS}" in
freebsd)
DEV="`kldstat | grep dazuko`"
;;
sunos)
DEV=`modinfo | grep ${DEVNAME}`
;;
*)
DEV=""
if [ -f "/proc/devices" ]
then
DEV="`grep dazuko /proc/devices`"
fi
;;
esac
}
noop()
{
if [ 0 -eq 1 ]
then
$ECHO "strange"
fi
}
error_message()
{
if [ "$PRODUCT" = "smcagent" ]
then
$ECHO "$1" >&2
fi
}
check_copyfiles()
{
MISSING_CPLIST=""
for CPITEM in $CPLIST
do
if [ ! -f "$CPITEM" ]
then
MISSING_CPLIST="$MISSING_CPLIST $CPITEM"
fi
done
if [ ! -z "$MISSING_CPLIST" ]
then
$ECHO " "
$ECHO "Not all the installation files were found. Make sure"
$ECHO "you have the complete installation package. This script"
$ECHO "requires the following files:"
for CPITEM in $MISSING_CPLIST
do
$ECHO " $CPITEM"
error_message "error: missing installation file $CPITEM"
done
$ECHO " "
exit 1
fi
}
check_yesno_input()
{
INPUT="$2"
INPUTRC=0
if [ ! -z "$INPUT" ]
then # non-interactive mode, the input value is preset
$ECHO -n "$1"
$ECHO "$INPUT"
case $INPUT in
y|Y|yes|Yes|YEs|YES|yEs|yES)
return 1
;;
n|N|no|NO|nO|No)
return 0
;;
esac
else # query the user for the input value
while [ $INPUTRC -eq 0 ]
do
$ECHO -n "$1"
read INPUT
case $INPUT in
y|Y|yes|Yes|YEs|YES|yEs|yES)
INPUTRC=1
return 1
;;
n|N|no|NO|nO|No)
INPUTRC=1
return 0
;;
"") # default answer
INPUTRC=1
return 2
;;
*)
$ECHO "Invalid answer, please answer y/n"
$ECHO ""
;;
esac
done
fi
}
findnewkey()
{
FINDKEYCOUNT=""
KEYBASENAME="avira"
NEWKEY="$KEYBASENAME$FINDKEYCOUNT.key"
while [ -f "$1/$NEWKEY" ]
do
if [ -z "$FINDKEYCOUNT" ]
then
FINDKEYCOUNT=2
else
FINDKEYCOUNT=`expr $FINDKEYCOUNT + 1`
fi
NEWKEY="$KEYBASENAME$FINDKEYCOUNT.key"
done
}
check_executables()
{
MISSING_EXELIST=""
for EXEITEM in $EXELIST
do
if [ ! -x "`which $EXEITEM`" ]
then
MISSING_EXELIST="$MISSING_EXELIST $EXEITEM"
fi
done
if [ ! -z "$MISSING_EXELIST" ]
then
$ECHO " "
$ECHO "Not all the required tools were found. Please install"
$ECHO "the following tools:"
for EXEITEM in $MISSING_EXELIST
do
$ECHO " $EXEITEM"
error_message "error: missing required tool $EXEITEM"
done
$ECHO " "
exit 1
fi
}
find_backup()
{
BACKUPNUMBER=0
BACKUPFILE="${FILE_TO_BACKUP}.backup$BACKUPNUMBER"
while [ -f "$BACKUPFILE" ]
do
BACKUPNUMBER=`expr $BACKUPNUMBER + 1`
if [ $BACKUPNUMBER -eq 0 ]
then
return
fi
BACKUPFILE="${FILE_TO_BACKUP}.backup$BACKUPNUMBER"
done
}
convert_version()
{
set -- `$ECHO "${VERSION}" | sed 's/[^0-9]/\ /g'`
MAJ=$1
test $MAJ -eq 0
if [ $? -gt 1 ]
then
MAJ=0
fi
MIN=$2
test $MIN -eq 0
if [ $? -gt 1 ]
then
MIN=0
fi
REV=$3
test $REV -eq 0
if [ $? -gt 1 ]
then
REV=0
fi
BLD=$4
test $BLD -eq 0
if [ $? -gt 1 ]
then
BLD=0
fi
VERSION=`expr $MAJ \* 1000000`
TEMP1=`expr $MIN \* 10000`
VERSION=`expr $VERSION + $TEMP1`
TEMP1=`expr $REV \* 100`
VERSION=`expr $VERSION + $TEMP1`
VERSION=`expr $VERSION + $BLD`
}
compare_versions()
{
# 0 = replace older version
# 1 = do not replace same version
# 2 = do not replace newer version
# 3 = TOO new version (do not install)
if [ $OLDVERSION -lt $NEWVERSION ]
then
return 0
elif [ $OLDVERSION -eq $NEWVERSION ]
then
return 1
elif [ $OLDVERSION -gt $NEWVERSION ]
then
if [ `expr $OLDVERSION / 10000` -gt `expr $NEWVERSION / 10000` ]
then
return 3
fi
return 2
fi
return 0
}
ldd_bin_check()
{
LDD=`which ldd`
if [ -x "$LDD" ]
then
for BINS_2_CHECK in avguard.bin avwebgate.bin avmailgate.bin agent ium
do
if [ -f "bin/$CLASSIFICATION/$BINS_2_CHECK" ]
then
case $BINS_2_CHECK in
avguard.bin)
if [ "$CLASSIFICATION" = "solaris_sparc" ]
then
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libgcc_s | grep -v libdazuko | grep -v libsavapi`"
else
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libdazuko | grep -v libsavapi`"
fi
;;
avmailgate.bin)
if [ "$CLASSIFICATION" = "solaris_sparc" ]
then
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libgcc_s | grep -v libasmailgate`"
else
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libasmailgate`"
fi
;;
avwebgate.bin)
if [ "$CLASSIFICATION" = "solaris_sparc" ]
then
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libgcc_s`"
else
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK`"
fi
;;
agent)
if [ "$CLASSIFICATION" = "solaris_sparc" ]
then
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libstdc++.so.5 | grep -v libstdc++.so.6 | grep -v libcommon`"
else
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libcommon`"
fi
;;
ium)
LIB_CHECK="`$LDD bin/$CLASSIFICATION/$BINS_2_CHECK | grep -v libupdate | grep -v libcommon`"
;;
esac
$ECHO $LIB_CHECK | grep "not a dynamic executable" > /dev/null 2>&1
if [ "$?" -eq "0" ]
then
$ECHO " "
$ECHO "It is not possible to install "$FULLPRODUCTNAME", because your system platform is not supported."
$ECHO " "
error_message "error: not supported system platform"
exit 1
fi
$ECHO $LIB_CHECK | grep "not found" > /dev/null 2>&1
if [ "$?" -eq "0" ]
then
$ECHO "Not all needed libraries were found on your system:"
$ECHO "$LIB_CHECK"
exit 28
fi
fi
done
fi
}
install_smcplugin()
{
if [ ! -d "$AVDIR/agent" ]
then
avinstall -T "$AVDIR/agent" -u root -g "$PROGNAME" -m 755
if [ $? -ne 0 ]
then
error_message "error: failed to create $AVDIR/agent"
exit 1
fi
fi
if [ ! -d "$AVDIR_BASE/agent" ]
then
avinstall -T "$AVDIR_BASE/agent" -u root -g "$PROGNAME" -m 755
if [ $? -ne 0 ]
then
error_message "error: failed to create $AVDIR_BASE/agent"
fi
fi
if [ -f "smcpkg/scanparameters.txt" ]
then
avinstall -f -S smcpkg -s scanparameters.txt -T "$AVDIR/agent" -u root -g "$PROGNAME" -m 755
fi
if [ "$CLASSIFICATION" = "linux_glibc22_x86_64" ]
then
LIBPLUGINSRC="lib$SMCPLUGINPREFIX.so.linux_glibc22"
else
LIBPLUGINSRC="lib$SMCPLUGINPREFIX.so.$CLASSIFICATION"
fi
if [ ! -f "smcpkg/$LIBPLUGINSRC" -a ! -z "$FALLBACK_CLASSIFICATION" ]
then
LIBPLUGINSRC="lib$SMCPLUGINPREFIX.so.$FALLBACK_CLASSIFICATION"
fi
LIBPLUGINDST="lib$SMCPLUGINPREFIX.so"
if [ -f "smcpkg/$LIBPLUGINSRC" ]
then
for ITEM in `find smcpkg -type f | grep "libux" | grep "$CLASSIFICATION" | sed -e 's,smcpkg\/,,'`
do
INSTALL_ITEM=`$ECHO $ITEM | sed -e 's,\.'${CLASSIFICATION}',,'`
avinstall -f -S smcpkg -s "$ITEM" -T "$AVDIR/agent" -t "$INSTALL_ITEM" -u root -g "$PROGNAME" -m 755
$ECHO -n "linking $AVDIR/agent/$INSTALL_ITEM to $AVDIR_BASE/agent/$INSTALL_ITEM ... "
rm -f $AVDIR_BASE/agent/$INSTALL_ITEM
ln -sf $AVDIR/agent/$INSTALL_ITEM $AVDIR_BASE/agent/$INSTALL_ITEM
$ECHO "done"
done
fi
if [ "$PRODUCT" = "server" -o "$PRODUCT" = "workstation" ]
then
avinstall -f -S script -s write_fstab.sh -T "$AVDIR/agent" -u root -g "$PROGNAME" -m 755
fi
avinstall -T $AVDIR/gui -u root -g "$PROGNAME" -m 750
avinstall -T $AVDIR/gui/cert -u root -g "$PROGNAME" -m 750
avinstall -T $AVDIR/gui/src -u root -g "$PROGNAME" -m 750
avinstall -T $AVDIR/gui/bin -u root -g "$PROGNAME" -m 750
if [ "$PRODUCT" = "mailgate" ]
then
avinstall -f -S bin/$CLASSIFICATION -s avmg_stats.lck -T "$AVDIR/gui/bin" -u uucp -g "$PROGNAME" -m 640
avinstall -f -S bin/$CLASSIFICATION -s avmg_stats -T "$AVDIR/gui/bin" -u uucp -g "$PROGNAME" -m 750
fi
if [ "$PRODUCT" = "server" -o "$PRODUCT" = "workstation" ]
then
avinstall -f -S bin/$CLASSIFICATION -s avgu_stats.lck -T "$AVDIR/gui/bin" -u nobody -g "$PROGNAME" -m 664
avinstall -f -S bin/$CLASSIFICATION -s avgu_stats -T "$AVDIR/gui/bin" -u root -g "$PROGNAME" -m 750
fi
avinstall -f -S bin/$CLASSIFICATION -s antivir_start.real -T "$AVDIR/gui/bin" -u root -g "$PROGNAME" -m 750
chmod u+s $AVDIR/gui/bin/antivir_start.real
avinstall -f -S bin/$CLASSIFICATION -s antivir_start -T "$AVDIR/gui/bin" -u root -g "$PROGNAME" -m 755
avinstall -f -S smcpkg/src -s antivir_start.c -T "$AVDIR/gui/src" -u root -g "$PROGNAME" -m 644
avinstall -f -S smcpkg/cert -s client.jks -T "$AVDIR/gui/cert" -u root -g "$PROGNAME" -m 644
avinstall -f -S smcpkg/cert -s server.pem -T "$AVDIR/gui/cert" -u root -g "$PROGNAME" -m 644
avinstall -f -S smcpkg/cert -s cacert.jks -T "$AVDIR/gui/cert" -u root -g "$PROGNAME" -m 644
avinstall -f -S smcpkg/cert -s cacert.pem -T "$AVDIR/gui/cert" -u root -g "$PROGNAME" -m 644
}
patch_install_temp()
{
$ECHO -n "patching temp-dir in /etc/avira/$UPDATENAME-$UPDATE_CONF_NAME.conf ... "
cp /etc/avira/$UPDATENAME-$UPDATE_CONF_NAME.conf /etc/avira/$UPDATENAME-$UPDATE_CONF_NAME.conf.tmp
cat /etc/avira/$UPDATENAME-$UPDATE_CONF_NAME.conf.tmp | sed 's,temp-dir=/tmp/avira_update,temp-dir=/tmp/avira_update/'$INSTALL_NAME',' > /etc/avira/$UPDATENAME-$UPDATE_CONF_NAME.conf
rm /etc/avira/$UPDATENAME-$UPDATE_CONF_NAME.conf.tmp
$ECHO "done"
}
setup_startup_scripts()
{
RCPATH=`sh script/rcscript query "$SSS_SCRIPT"`
if [ "$SSS_START" -eq 1 ]
then
RCOVERWRITE=1
if [ ! -z "$RCPATH" ]
then
if [ $HAS_INF -eq 1 ]
then
INPUT="y"
$ECHO "$INPUT"
fi
$ECHO " "
$ECHO "Boot scripts for $SSS_NAME have been found."
check_yesno_input "Should they be overwritten? [y] " $INPUT
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
RCOVERWRITE=1
else
RCOVERWRITE=0
fi
fi
if [ $RCOVERWRITE -eq 1 ]
then
$ECHO -n "setting up boot script ... "
sh script/rcscript install "$SSS_SCRIPT"
if [ $? -ne 0 ]
then
$ECHO "failed"
$ECHO " "
error_message "warning: unable to set up boot script"
$ECHO " "
$ECHO "************************************************"
$ECHO " Unable to locate where boot scripts belong."
$ECHO " You can launch $SSS_NAME with:"
$ECHO " "
$ECHO " $SSS_SCRIPT start"
$ECHO "************************************************"
$ECHO " "
$ECHO -n "Press <ENTER> to continue."
if [ $HAS_INF -eq 0 ]
then
read INPUT
else
$ECHO " "
fi
else
$ECHO "done"
fi
fi
else
if [ ! -z "$RCPATH" ]
then
RCREMOVE=0
INPUT=""
if [ $HAS_INF -eq 1 ]
then
INPUT="y"
$ECHO "$INPUT"
fi
$ECHO " "
$ECHO "Boot scripts for $SSS_NAME have been found."
check_yesno_input "Should they be removed? [n] " $INPUT
if [ "$?" -eq "1" ]
then
sh script/rcscript remove "$SSS_SCRIPT"
fi
fi
fi
}
install_smcagent()
{
# check for old smc-plugins
for ITEM in $AVDIR_BASE/agent/libuxmgt.so \
$AVDIR_BASE/agent/libuxsrv.so \
$AVDIR_BASE/agent/libuxwgt.so \
$AVDIR_BASE/agent/libuxwks.so
do
if [ -f "$ITEM" ]
then
case $ITEM in
*libuxmgt.so)
SMC_PLUGIN_PRODUCT="AVIRA MailGate (UNIX)"
;;
*libuxsrv.so)
SMC_PLUGIN_PRODUCT="AVIRA AntiVir Server (UNIX)"
;;
*libuxwgt.so)
SMC_PLUGIN_PRODUCT="AVIRA AntiVir WebGate (UNIX)"
;;
*libuxwks.so)
SMC_PLUGIN_PRODUCT="AVIRA AntiVir Workstation (UNIX)"
;;
esac
for YEAR in 2006 2007 2008
do
strings $ITEM | grep -i "rev.*$YEAR" > /dev/null 2>&1
ERR_PLUGIN_VERSION="$?"
grep $ITEM /usr/lib/AntiVir/agent/agent.conf > /dev/null 2>&1
ERR_PLUGIN_IN_AGENT_CONF="$?"
if [ "$ERR_PLUGIN_VERSION" -eq 0 -a "$ERR_PLUGIN_IN_AGENT_CONF" -eq 0 ]
then
error_message "$ITEM not compatible with AVIRA SMC Agent 2.4, please uninstall $SMC_PLUGIN_PRODUCT first"
exit 1
fi
done
fi
done
if [ ! -d "$AVDIR_BASE" ]
then
avinstall -T "$AVDIR_BASE" -u root -g "$PROGNAME" -m 755
fi
if [ ! -d "$AVDIR" ]
then
avinstall -T "$AVDIR" -u root -g "$PROGNAME" -m 755
if [ $? -ne 0 ]
then
error_message "error: failed to create $AVDIR"
exit 1
fi
fi
if [ ! -d /etc/avira ]
then
avinstall -T /etc/avira -u root -g "$PROGNAME" -m 775
fi
if [ -x $AVDIR/agent/smc-agent ]
then
$ECHO -n "stop running $FULLPRODUCTNAME ... "
$AVDIR/agent/smc-agent stop > /dev/null 2>&1
$ECHO "done"
fi
avinstall -f -s uninstall -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -s uninstall_smcplugin.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S etc -s file_list -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S etc -s dir_list -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S etc -s run.inf -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -s README.uninstall -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -s build.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S bin/$CLASSIFICATION -s agent -T "$AVDIR" -t agent -u root -g "$PROGNAME" -m 755
avinstall -f -S bin/$CLASSIFICATION -s agent_msg.avr -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S bin/$CLASSIFICATION -s common_msg.avr -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S bin/$CLASSIFICATION -s libcommon.so -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S bin/$CLASSIFICATION -s avverifier -T "$AVDIR" -u root -g "$PROGNAME" -m 755
if [ "$OS" = "sunos" ]
then
avinstall -f -S bin/$CLASSIFICATION -s libstdc++.so.5 -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S bin/$CLASSIFICATION -s libstdc++.so.6 -T "$AVDIR" -u root -g "$PROGNAME" -m 755
if [ -f "/usr/local/lib/libgcc_s.so.1" ]
then
LIBGCC_S_LOCATION="/usr/local/lib/libgcc_s.so.1"
elif [ -f "/opt/sfw/lib/libgcc_s.so.1" ]
then
LIBGCC_S_LOCATION="/usr/local/lib/libgcc_s.so.1"
fi
if [ ! -z "$LIBGCC_S_LOCATION" ]
then
$ECHO -n "$AVDIR/libgcc_s.so.1 to $LIBGCC_S_LOCATION ... "
rm -f "$AVDIR/libgcc_s.so.1"
ln -s $LIBGCC_S_LOCATION "$AVDIR/libgcc_s.so.1"
$ECHO "done"
else
avinstall -f -S bin/$CLASSIFICATION -s libgcc_s.so.1 -T "$AVDIR" -u root -g "$PROGNAME" -m 755
fi
fi
if [ ! -x "$AVDIR/Agent" ]
then
$ECHO -n "linking $AVDIR/Agent to $AVDIR/$SMCAGENTNAME ... "
rm -f $AVDIR/Agent
ln -sf $AVDIR/$SMCAGENTNAME $AVDIR/Agent
$ECHO "done"
fi
avinstall -f -S bin/$CLASSIFICATION -s avupdate.bin -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S bin/$CLASSIFICATION -s avupdate_msg.avr -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s $UPDATENAME.template -T "$AVDIR" -t "$UPDATENAME-$UPDATE_CONF_NAME" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s rcscript -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s smcagent_start.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s smcagent_restart.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s smcagent_stop.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s smcagent_post.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avira_start.sh.template -T "$AVDIR" -t smc-agent -u root -g "$PROGNAME" -m 755
cp $AVDIR/smc-agent $AVDIR/smc-agent.orig
cat $AVDIR/smc-agent.orig | sed -e 's,_PRODUCT_,'${PRODUCT}',' -e 's,_UPD-PRODUCT_,'${UPD_PRODUCT}',' -e 's,_FULLPRODUCTNAME_,'"${FULLPRODUCTNAME}"',' > $AVDIR/smc-agent
rm $AVDIR/smc-agent.orig
$ECHO -n "setting up SSL keys ... "
gzip -dc agent/tgz/sslkeys.tar.gz | (cd $AVDIR ; tar xf -)
if [ $? -ne 0 ]
then
$ECHO "failed."
$ECHO " "
error_message "error: failed to set up SSL keys in $AVDIR/agent"
exit 1
fi
$ECHO "done."
if [ ! -f /etc/avira/$UPDATENAME-$UPDATE_CONF_NAME.conf ]
then
avinstall -f -S etc -s $UPDATENAME.conf -T /etc/avira -t $UPDATENAME-$UPDATE_CONF_NAME.conf -u root -g "$PROGNAME" -m 664
if [ "$PRODUCT" != "savapi3" ]
then
patch_install_temp
fi
fi
avinstall -f -S etc -s $UPDATENAME.conf -T /etc/avira -t $UPDATENAME-$UPDATE_CONF_NAME.conf.default -u root -g "$PROGNAME" -m 664
avinstall -f -S etc -s agent.ini -T /etc/avira -u root -g "$PROGNAME" -m 644
avinstall -f -S etc -s agent.ini -T /etc/avira -t agent.ini.default -u root -g "$PROGNAME" -m 644
# check if libstdc++.so.5/libstdc++.so.6 is available on this system
if [ ${OS} = "sunos" ]
then
LIB_2_CHECK="libstdc++.so.6"
else
LIB_2_CHECK="libstdc++.so.5"
fi
$EXEC_AGENT ldd $AVDIR/$SMCAGENTNAME | grep "not found" > /dev/null
if [ $? -eq 0 ]
then
$ECHO " "
$ECHO "${LIB_2_CHECK} not found."
case $SYSTEMINFO in
*suse*11*)
zypper -n install libstdc++33 > /dev/null 2>&1
INSTALL_LIB="$?"
;;
*fedora*)
yum -y install compat-libstdc++-33 > /dev/null 2>&1
INSTALL_LIB="$?"
;;
*debian*)
apt-get install libstdc++5 --assume-yes > /dev/null 2>&1
INSTALL_LIB="$?"
;;
*)
error_message "error: ${LIB_2_CHECK} missing, please install first."
exit 1
;;
esac
if [ $INSTALL_LIB -eq 0 ]
then
$ECHO "Installing missing ${LIB_2_CHECK} ... done"
else
error_message "error: failed to install ${LIB_2_CHECK}"
$ECHO " "
$ECHO "It was not possible to install a needed system library."
$ECHO "If this library is not installed, it's not possible to"
$ECHO "run AVIRA SMC Agent."
exit 1
fi
$EXEC_AGENT ldd $AVDIR/$SMCAGENTNAME | grep "not found" > /dev/null
if [ $? -eq 0 ]
then
$ECHO " "
$ECHO "It was not possible to resolve all dependencies."
exit 1
fi
fi
$ECHO -n "setting up agent configuration ... "
if [ "$AGENT_NETWORKNAME" != "$NO_VALUE" ]
then
AGENT_EXTRA_ARG1="--network_name="
AGENT_EXTRA_ARG2="$AGENT_NETWORKNAME"
else
AGENT_EXTRA_ARG1=""
AGENT_EXTRA_ARG2=""
fi
if [ "$AGENT_GUID" != "$NO_VALUE" ]
then
AGENT_EXTRA_ARG3="--guid="
AGENT_EXTRA_ARG4="$AGENT_GUID"
else
AGENT_EXTRA_ARG3=""
AGENT_EXTRA_ARG4=""
fi
if [ "$AGENT_PRODUCT_CONFIG" != "$NO_VALUE" ]
then
AGENT_EXTRA_ARG5="--product_config="
AGENT_EXTRA_ARG6="$AGENT_PRODUCT_CONFIG"
else
AGENT_EXTRA_ARG5=""
AGENT_EXTRA_ARG6=""
fi
AGENT_ERR=`$EXEC_AGENT $AVDIR/$SMCAGENTNAME --agent_port="$AGENT_AGENTPORT" --server_uri=http://"${AGENT_SERVERIP}:${AGENT_SERVERPORT}" --evmgr_uri=http://"${AGENT_EVENTMANAGERIP}:${AGENT_EVENTMANAGERPORT}" --update_uri=http://"${AGENT_UPDATEMANAGERIP}:${AGENT_UPDATEMANAGERPORT}" --display_name="$AGENT_DISPLAYNAME" $AGENT_EXTRA_ARG1$AGENT_EXTRA_ARG2 $AGENT_EXTRA_ARG3$AGENT_EXTRA_ARG4 $AGENT_EXTRA_ARG5$AGENT_EXTRA_ARG6 2>&1`
if [ $? -ne 0 ]
then
$ECHO "failed."
$ECHO " "
error_message "error: failed to set up agent configuration"
$ECHO "$AGENT_ERR" >&2
exit 1
fi
$ECHO "done."
# check for products and their smc plugins
for INSTALLED_PRODUCTS in $AVDIR_BASE/guard/avguard.bin /avmailgate.bin $AVDIR_BASE/avwebgate.bin
do
if [ -f "$INSTALLED_PRODUCTS" ]
then
case $INSTALLED_PRODUCTS in
*guard*)
if [ -f $AVDIR_BASE/guard/AV_SRV_PROF ]
then
SMC_PLUGIN_LIB="$AVDIR_BASE/guard/agent/libuxsrv.so"
elif [ -f $AVDIR_BASE/guard/AV_WKS_PROF ]
then
SMC_PLUGIN_LIB="$AVDIR_BASE/guard/agent/libuxwks.so"
elif [ -f $AVDIR_BASE/AV_SRV_PROF ]
then
SMC_PLUGIN_LIB="$AVDIR_BASE/agent/libuxsrv.so"
elif [ -f $AVDIR_BASE/AV_WKS_PROF ]
then
SMC_PLUGIN_LIB="$AVDIR_BASE/agent/libuxwks.so"
fi
;;
*mailgate*)
SMC_PLUGIN_LIB="$AVDIR_BASE/agent/libuxmgt.so"
;;
*webgate*)
SMC_PLUGIN_LIB="$AVDIR_BASE/agent/libuxwgt.so"
;;
esac
KEYWORD=`$ECHO $SMC_PLUGIN_LIB | sed -e 's/^.*ux/ux/; s/\.so$//'`
$ECHO -n "registering SMC UNIX Agent plug-in ($KEYWORD) ... "
$EXEC_AGENT $AVDIR/$SMCAGENTNAME --install-plugin $KEYWORD $SMC_PLUGIN_LIB > /dev/null 2>&1
$ECHO "done"
fi
done
STARTAGENT=1
$ECHO " "
$ECHO "Please specify if boot scripts should be set up."
check_yesno_input "Set up boot scripts ? [y] " $AGENT_AUTOSTART
if [ "$?" -eq 0 ]
then
STARTAGENT=0
fi
SSS_START=$STARTAGENT
SSS_SCRIPT="$AVDIR/smc-agent"
SSS_NAME="AVIRA SMC UNIX Agent"
setup_startup_scripts
$ECHO " "
check_yesno_input "Would you like to start the SMC UNIX Agent now? [y] " $AGENT_STARTNOW
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
$AVDIR/smc-agent start
fi
$ECHO "installation of the SMC UNIX Agent complete"
}
print_openbsd_startup_msg()
{
$ECHO " "
$ECHO "If you would like $SSS_NAME to start up"
$ECHO "automatically on system boot, please add the following"
$ECHO "to the bottom of the /etc/rc.local file:"
$ECHO " "
$ECHO " if [ -x $SSS_SCRIPT ]; then"
$ECHO " $SSS_SCRIPT start"
$ECHO " fi"
$ECHO " "
$ECHO -n "Press <ENTER> to continue."
read INPUT
}
install_webgate()
{
if [ "$VARIANT" = "AVDE" ]
then
avinstall -f -S doc -s avwebgate_en.pdf -T "$AVDIR" -u root -g "$PROGNAME" -m 644
if [ $? -ne 0 ]
then
exit 1
fi
fi
if [ -x $AVDIR/avwebgate ]
then
$ECHO -n "stop running $FULLPRODUCTNAME ... "
$AVDIR/avwebgate stop > /dev/null 2>&1
$ECHO "done"
fi
avinstall -f -S bin/$CLASSIFICATION -s avwebgate.bin -T "$AVDIR" -u root -g "$PROGNAME" -m 755
if [ $? -ne 0 ]
then
exit 1
fi
avinstall -f -S bin -s wskeyfile -T "$AVDIR" -u root -g "$PROGNAME" -m 755
if [ $? -ne 0 ]
then
exit 1
fi
avinstall -f -S bin/$CLASSIFICATION -s webcattool -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S doc -s README.webcattool -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -s build.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S script -s avwebgate_start.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avwebgate_restart.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avwebgate_reload.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avwebgate_stop.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avwebgate_post.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avira_start.sh.template -T "$AVDIR" -t avwebgate -u root -g "$PROGNAME" -m 755
cp $AVDIR/avwebgate $AVDIR/avwebgate.orig
cat $AVDIR/avwebgate.orig | sed -e 's,_PRODUCT_,'${PRODUCT}',' -e 's,_UPD-PRODUCT_,'${UPD_PRODUCT}',' -e 's,_FULLPRODUCTNAME_,'"${FULLPRODUCTNAME}"',' > $AVDIR/avwebgate
rm $AVDIR/avwebgate.orig
avinstall -f -S etc -s webcat0.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S etc -s webcat1.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S etc -s webcat2.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S etc -s webcat3.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S etc -s webcat4.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S doc -s MANUAL -T "$AVDIR" -t MANUAL.avwebgate -u root -g "$PROGNAME" -m 644
avinstall -T "$AVDIR/templates" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/en" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/de" -u root -g "$PROGNAME" -m 775
$ECHO -n "installing example templates to $AVDIR/templates ... "
for item_tmpl in `ls templates/`
do
$ECHO -n " $item_tmpl"
for item in `ls templates/$item_tmpl`
do
avinstall -q -f -S templates/$item_tmpl -s "$item" -T "$AVDIR/templates/examples/$item_tmpl" -u root -g "$PROGNAME" -m 664
done
done
$ECHO "done"
$ECHO " "
if [ ! -x "/usr/sbin/avwebgate" ]
then
$ECHO " "
check_yesno_input "Would you like to create a link in /usr/sbin for avwebgate ? [y] " $WEBGATE_ADDLINK
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
$ECHO -n "linking /usr/sbin/avwebgate to $AVDIR/avwebgate ... "
rm -f /usr/sbin/avwebgate
ln -s $AVDIR/avwebgate /usr/sbin/avwebgate
$ECHO "done"
fi
fi
SSS_SCRIPT="$AVDIR/avwebgate"
SSS_NAME="AVIRA WebGate"
STARTWEBGATE=1
$ECHO " "
$ECHO "Please specify if boot scripts should be set up."
check_yesno_input "Set up boot scripts ? [y] " $WEBGATE_AUTOSTART
if [ "$?" -eq "0" ]
then
STARTWEBGATE=0
fi
SSS_START=$STARTWEBGATE
setup_startup_scripts
$ECHO "installation of main program complete"
}
install_mailgate()
{
if [ "$VARIANT" = "AVDE" ]
then
avinstall -f -S doc -s avmailgate_en.pdf -T "$AVDIR" -u root -g "$PROGNAME" -m 644
if [ $? -ne 0 ]
then
exit 1
fi
fi
if [ -x $AVDIR/avmailgate ]
then
$ECHO -n "stop running $FULLPRODUCTNAME ... "
$AVDIR/avmailgate stop > /dev/null 2>&1
$ECHO "done"
fi
avinstall -f -S bin/$CLASSIFICATION -s avmailgate.bin -T "$AVDIR" -u root -g "$PROGNAME" -m 755
if [ $? -ne 0 ]
then
exit 1
fi
ASMAILGATE_SRC="contrib/asmailgate"
ASMAILGATE_BINDIR="$ASMAILGATE_SRC/bin/$CLASSIFICATION"
if [ ! -d "$ASMAILGATE_BINDIR" -a ! -z "$USE_CLASSIFICATION" ]
then
ASMAILGATE_BINDIR="$ASMAILGATE_SRC/bin/$USE_CLASSIFICATION"
fi
ASMAILGATE_DATADIR="$ASMAILGATE_SRC/data"
ASMAILGATE_LIB="libasmailgate.so"
ASMAILGATE_BIN="avmg_ext_filter.bin"
if [ -f "$ASMAILGATE_BINDIR/$ASMAILGATE_LIB" ]
then
# install asmailgate
avinstall -f -S $ASMAILGATE_BINDIR -s $ASMAILGATE_LIB -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S $ASMAILGATE_BINDIR -s $ASMAILGATE_BIN -T "$AVDIR" -u root -g "$PROGNAME" -m 755
for item_expg in `ls $ASMAILGATE_DATADIR/`
do
avinstall -f -S $ASMAILGATE_DATADIR -s $item_expg -T "$AVDIR" -u root -g "$PROGNAME" -m 644
done
fi
avinstall -f -s build.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S script -s avmailgate_start.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avmailgate_restart.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avmailgate_smc_post.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avmailgate_stop.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avmailgate_post.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s create-db.sql -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avira_start.sh.template -T "$AVDIR" -t avmailgate -u root -g "$PROGNAME" -m 755
cp $AVDIR/avmailgate $AVDIR/avmailgate.orig
cat $AVDIR/avmailgate.orig | sed -e 's,_PRODUCT_,'${PRODUCT}',' -e 's,_UPD-PRODUCT_,'${UPD_PRODUCT}',' -e 's,_FULLPRODUCTNAME_,'"${FULLPRODUCTNAME}"',' > $AVDIR/avmailgate
rm $AVDIR/avmailgate.orig
avinstall -f -S doc -s MANUAL -T "$AVDIR" -t MANUAL.avmailgate -u root -g "$PROGNAME" -m 644
avinstall -T "$AVDIR/templates" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/de" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/en" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/es" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/hu" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/it" -u root -g "$PROGNAME" -m 775
avinstall -T "$AVDIR/templates/examples/nl" -u root -g "$PROGNAME" -m 775
$ECHO -n "installing example templates to $AVDIR/templates ... "
for item_tmpl in `ls templates/`
do
for item in `ls templates/$item_tmpl`
do
avinstall -q -f -S templates/$item_tmpl -s "$item" -T "$AVDIR/templates/examples/$item_tmpl" -u root -g "$PROGNAME" -m 664
done
done
$ECHO "done"
$ECHO " "
if [ -f templates/spamfilter-subjects ]
then
avinstall -f -S templates -s spamfilter-subjects -T "$AVDIR/templates/examples" -t spamfilter-subjects -u root -g "$PROGNAME" -m 664
fi
$ECHO " "
avinstall -S etc -s avmailgate.ignore -T /etc -u root -g "$PROGNAME" -m 664
avinstall -S etc -s avmailgate.scan -T /etc -u root -g "$PROGNAME" -m 664
avinstall -S etc -s avmailgate.warn -T /etc -u root -g "$PROGNAME" -m 664
avinstall -S etc -s asmailgate.except -T /etc -u root -g "$PROGNAME" -m 664
avinstall -S etc -s odbc.ini -T /etc/avira -u root -g "$PROGNAME" -m 664
avinstall -T "/var/spool/avmailgate" -u $MGTUSER -g "$PROGNAME" -m 700
avinstall -T "/var/spool/avmailgate/incoming" -u $MGTUSER -g "$PROGNAME" -m 700
avinstall -T "/var/spool/avmailgate/outgoing" -u $MGTUSER -g "$PROGNAME" -m 700
avinstall -T "/var/spool/avmailgate/rejected" -u $MGTUSER -g "$PROGNAME" -m 700
if [ ! -h "/usr/sbin/avmailgate" ]
then
rm -f /usr/sbin/avmailgate
fi
MANPAGES_DIR="`$ECHO $MANPATH | sed -e 's/:.*//'`"
if [ -z "$MANPAGES_DIR" ]
then
if [ -d /usr/share/man ]
then
MANPAGES_DIR="/usr/share/man"
elif [ -d /usr/local/man ]
then
MANPAGES_DIR="/usr/local/man"
fi
fi
$ECHO " "
$ECHO "Enter the path where the manual pages will be located:"
$ECHO -n "[$MANPAGES_DIR]: "
INPUT=$MAILGATE_MANPAGESDIR
if [ -z "$INPUT" ]
then
if [ $HAS_INF -ne 0 ]
then
INPUT="$MANPAGES_DIR"
else
read INPUT
if [ -z "$INPUT" ]
then
INPUT="$MANPAGES_DIR"
fi
fi
else
$ECHO "$INPUT"
fi
MANPAGES_DIR="$INPUT"
if [ ! -d $MANPAGES_DIR/man5 ]
then
mkdir $MANPAGES_DIR/man5
fi
avinstall -f -S doc/man -s avmailgate.conf.5 -T "$MANPAGES_DIR/man5" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc/man -s avmailgate.acl.5 -T "$MANPAGES_DIR/man5" -u root -g "$PROGNAME" -m 644
if [ ! -d $MANPAGES_DIR/man8 ]
then
mkdir $MANPAGES_DIR/man8
fi
avinstall -f -S doc/man -s avmailgate.8 -T "$MANPAGES_DIR/man8" -u root -g "$PROGNAME" -m 644
if [ ! -f "/etc/avmailgate.acl" ]
then
ACLLIST=""
case $OS in
linux*)
ACLLIST="`hostname -f` `hostname -d`"
;;
freebsd|openbsd)
ACLLIST="`hostname` `hostname -s`"
;;
sunos)
ACLLIST="`hostname` `domainname`"
;;
esac
LOCAL_ACL=""
for aclitem in $ACLLIST
do
if [ -z "$LOCAL_ACL" ]
then
LOCAL_ACL="$aclitem"
else
LOCAL_ACL="$LOCAL_ACL $aclitem"
fi
done
$ECHO " "
$ECHO "Enter the hosts and/or domains that are local:"
$ECHO -n "[$LOCAL_ACL]: "
INPUT=$MAILGATE_LOCALACL
if [ -z "$INPUT" ]
then
read INPUT
if [ -z "$INPUT" ]
then
INPUT="$LOCAL_ACL"
fi
else
$ECHO "$INPUT"
fi
LOCAL_ACL="$INPUT"
RELAY_ACL="127.0.0.1/8 192.168.0.0/16"
$ECHO " "
$ECHO "Enter the hosts and networks that are allowed to relay:"
$ECHO -n "[$RELAY_ACL]: "
INPUT=$MAILGATE_RELAYACL
if [ -z "$INPUT" ]
then
read INPUT
if [ -z "$INPUT" ]
then
INPUT="$RELAY_ACL"
fi
else
$ECHO "$INPUT"
fi
RELAY_ACL="$INPUT"
$ECHO "# Access lists for AVIRA MailGate" > /etc/avmailgate.acl
$ECHO "" >> /etc/avmailgate.acl
$ECHO "# These hosts and/or domains are local." >> /etc/avmailgate.acl
$ECHO "local: localhost" >> /etc/avmailgate.acl
$ECHO "local: $LOCAL_ACL" >> /etc/avmailgate.acl
$ECHO "" >> /etc/avmailgate.acl
$ECHO "# These hosts and networks are allowed to relay." >> /etc/avmailgate.acl
$ECHO "relay: $RELAY_ACL" >> /etc/avmailgate.acl
$ECHO "" >> /etc/avmailgate.acl
chown root:antivir /etc/avmailgate.acl
chmod 664 /etc/avmailgate.acl
fi
if [ ! -x "/usr/sbin/avmailgate" ]
then
$ECHO " "
check_yesno_input "Would you like to create a link in /usr/sbin for avmailgate ? [y] " $MAILGATE_ADDLINK
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
$ECHO -n "linking /usr/sbin/avmailgate to $AVDIR/avmailgate ... "
rm -f /usr/sbin/avmailgate
ln -s "$AVDIR/avmailgate" /usr/sbin/avmailgate
$ECHO "done"
fi
fi
SSS_SCRIPT="$AVDIR/avmailgate"
SSS_NAME="AVIRA MailGate"
STARTMAILGATE=1
$ECHO " "
$ECHO "Please specify if boot scripts should be set up."
check_yesno_input "Set up boot scripts ? [y] " $MAILGATE_AUTOSTART
if [ "$?" -eq "0" ]
then
STARTMAILGATE=0
fi
SSS_START=$STARTMAILGATE
setup_startup_scripts
$ECHO "installation of main program complete"
}
mount_scan_paths()
{
# show what will be mounted
while read FSTAB_LINE
do
# use awk to ignore tabs or spaces from variable name
FSTYPE=`$ECHO $FSTAB_LINE |sed 's/^[ \t]*//' |grep -v ^#| awk -F' ' '{ print $3 }'`
MOUNT_PATH=`$ECHO $FSTAB_LINE |sed 's/^[ \t]*//' |grep -v ^#| awk -F' ' '{ print $2 }'`
if [ "$FSTYPE" = "dazukofs" ]
then
$ECHO "Mounting $MOUNT_PATH as dazukofs..."
$ECHO ""
fi
done < /etc/fstab
mount -a -t dazukofs >/dev/null 2>&1
if [ $? -ne 0 ]
then
$ECHO "Mount failed maybe some mount points are not valid"
fi
}
edit_includepath_4_fstab()
{
# Add current /etc/fstab dazukofs entries to INCLUDEPATH
while read FSTAB_LINE
do
FSTYPE=`$ECHO $FSTAB_LINE | sed 's/^[ \t]*//' | grep -v ^# | awk -F' ' '{ print $3 }'`
NEW_INCLUDE_PATH=`$ECHO $FSTAB_LINE | sed 's/^[ \t]*//' | grep -v ^# | awk -F' ' '{ print $2 }'`
if [ "$FSTYPE" = "dazukofs" ]
then
if [ -d $NEW_INCLUDE_PATH ]
then
INCLUDEPATH="$INCLUDEPATH ${NEW_INCLUDE_PATH}"
fi
fi
done < /etc/fstab
# If nothing was found in /etc/fstab,
# import from old /etc/avguard.conf
NEW_PATHS=0 # This variable is needed for preventing duplicate entries in /etc/fstab
if [ -z "$INCLUDEPATH" -a -f /etc/avguard.conf ]
then
for ITEM in `sed 's/^[ \t]*//' /etc/avguard.conf | grep -v ^# | grep -i IncludePath | awk -F' ' '{ print $2 }' | sort | uniq`
do
if [ -d $ITEM ]
then
INCLUDEPATH="$INCLUDEPATH $ITEM"
fi
done
NEW_PATHS=1
fi
$ECHO ""
$ECHO "Guard will automatically protect all directories"
$ECHO "which are mounted upon dazukofs filesystem."
$ECHO ""
sleep 1
if [ "$HAS_INF" -eq 0 ]
then
if [ -z "$INCLUDEPATH" ]
then
$ECHO "Please specify at least one directory to be protected"
$ECHO -n "by Guard to add in /etc/fstab : [/home] "
read INPUT
if [ -z "$INPUT" ]
then
INPUT="/home"
fi
while [ ! -d "$INPUT" ]
do
$ECHO "$INPUT is not a valid directory path,"
$ECHO -n "please reenter: "
read INPUT
done
INCLUDEPATH=$INPUT
NEW_PATHS=1
fi
else
# use the non-interactive value, even if this is empty
INCLUDEPATH="$INCLUDEPATH $NEW_INCLUDEPATH"
NEW_PATHS=1
fi
$ECHO "The following directories will be protected by Guard:"
for ITEM in $INCLUDEPATH
do
if [ -d $ITEM ]
then
$ECHO "$ITEM"
fi
done
$ECHO ""
$ECHO "If you want to remove or include more directories"
$ECHO "you will need to edit your /etc/fstab file and remount dazukofs."
$ECHO ""
sleep 1
if [ "$NEW_PATHS" -eq 1 ]
then
$ECHO "backup original /etc/fstab to /etc/fstab.orig"
cp /etc/fstab /etc/fstab.orig
# add the example
$ECHO "# DazukoFS ...
# Example of mounting one dir onto dazukofs (directory to be protected by AVIRA Guard)
#/home/shared /home/shared dazukofs" >> /etc/fstab
for ITEM in $INCLUDEPATH
do
$ECHO -n "adding DazukoFS IncludePath $ITEM to /etc/fstab ... "
$ECHO "$ITEM $ITEM dazukofs" >> /etc/fstab
$ECHO "done"
done
$ECHO "# ... DazukoFS" >> /etc/fstab
fi
}
move_file_link()
{
LINK_2_MOVE="$1"
if [ -x "`which dpkg-divert 2>/dev/null`" ]
then
$ECHO -n "move ${LINK_2_MOVE} to ${LINK_2_MOVE}.pre-installed ... "
dpkg-divert --rename --divert ${LINK_2_MOVE}.pre-installed ${LINK_2_MOVE} > /dev/null
if [ $? -eq 0 ]
then
$ECHO "done"
else
$ECHO "fail"
fi
else
$ECHO -n "move /usr/bin/avscan to /usr/bin/avscan.pre-installed ... "
mv ${LINK_2_MOVE} ${LINK_2_MOVE}.pre-installed
$ECHO "done"
fi
}
enable_unsupported_modules()
{
# check if the os is a suse os
if [ -f "/etc/SuSE-release" ]
then
# check if the os is a enterprise version and what version
cat /etc/SuSE-release | grep "Enterprise" > /dev/null 2>&1
if [ "$?" -eq "0" ]
then
SLES_VERSION="0"
ENTERPRISE="1"
SLES_VERSION="`cat /etc/SuSE-release | grep "VERSION" | sed -s 's,VERSION\ \=\ ,,'`"
else
ENTERPRISE="0"
SLES_VERSION="0"
fi
# if the os is a suse enterprise an the version equal or greater than 11 start the user question
if [ "$ENTERPRISE" -eq "1" -a "$SLES_VERSION" -ge "11" ]
then
cat /etc/modprobe.d/unsupported-modules | grep "^allow_unsupported_modules\ 1" > /dev/null 2>&1
if [ "$?" -ne "0" ]
then
${ECHO} "To run DazukoFS on your system you have to enable the feature to"
${ECHO} "load unsupported kernel modules. When this feature is not enabled,"
${ECHO} "DazukoFS will not work properly."
${ECHO} " "
${ECHO} "INFO: Loading unsupported modules results in, the kernel being tainted"
${ECHO} "Because ot this, your kernel may not be fully supported by Novell"
check_yesno_input "Would you like to enable the feature to load unsupported modules ? [y] " $INST_DAZUKO
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
cp /etc/modprobe.d/unsupported-modules /etc/modprobe.d/unsupported-modules.orig
${ECHO} -n "patch /etc/modprobe.d/unsupported-modules and enable the unsupported modules ... "
cat /etc/modprobe.d/unsupported-modules.orig | sed -e 's,^allow_unsupported_modules\ 0,allow_unsupported_modules\ 1,' > /etc/modprobe.d/unsupported-modules
${ECHO} "done"
rm /etc/modprobe.d/unsupported-modules.orig
fi
fi
fi
fi
}
add_dazuko_support()
{
ACTIVE_DAZUKO_LIB=''
if [ $OS = 'sunos' ]
then
SUNOS_VERSION="`sh script/getsysteminfo | sed 's/sunos\-//'`"
case ${SUNOS_VERSION} in
5.9)
ACTIVE_DAZUKO_LIB="libdazukoSolaris9.so"
;;
5.10)
ACTIVE_DAZUKO_LIB="libdazukoSolaris10.so"
;;
*)
${ECHO} "The Dazuko library in this package was not complied for Sun ${SUNOS_VERSION}"
exit 27
;;
esac
INSTALL_DAZUKOFS='n'
return 0
else
ACTIVE_DAZUKO_LIB='libdazuko3compat2.so'
fi
INSTALL_DAZUKOFS='y'
grep dazukofs /proc/devices > /dev/null 2>&1
DAZUKO_MODULE_LOADED="$?"
# update the module list
depmod -ae > /dev/null 2>&1
modprobe -l | grep dazukofs.ko > /dev/null 2>&1
PREINSTALLED_DAZUKO_FOUND="$?"
if [ "$DAZUKO_MODULE_LOADED" -eq 0 -o "$PREINSTALLED_DAZUKO_FOUND" -eq 0 ]
then
$ECHO " "
$ECHO "Preinstalled dazukofs module found on your system."
check_yesno_input "Would you like to reinstall dazukofs now ? [y] " $INST_DAZUKO
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
enable_unsupported_modules
$ECHO -n "installing dazuko ... "
cd contrib/dazuko
/bin/sh install_dazuko.sh
DAZUKOFS_INSTALL_FAIL="$?"
if [ "$DAZUKOFS_INSTALL_FAIL" -eq 0 ]
then
cd ../..
return 0
fi
cd ../..
fi
fi
if [ "$DAZUKO_MODULE_LOADED" -eq 0 ]
then
$ECHO 'Dazukofs module is loaded'
return 0
fi
if [ "$PREINSTALLED_DAZUKO_FOUND" -eq 0 ]
then
$ECHO -n 'Preinstalled dazukofs module found, probing... '
modprobe dazukofs >/dev/null 2>&1
if [ "$?" -eq 0 ]
then
$ECHO 'success'
return 0
else
$ECHO 'failed'
fi
fi
# Try to compile a dazukofs module
$ECHO
$ECHO 'No Dazukofs module found on your system.'
$ECHO
$ECHO 'DazukoFS is a stackable filesystem driver developed independently'
$ECHO 'by the Dazuko project (
www.dazuko.org).'
$ECHO 'Which means codechanges, bugfixes and roadmap of this driver is completely'
$ECHO 'done by the Dazuko project and their community.'
$ECHO
$ECHO 'For your convenience you can start the DazukoFS installation from here.'
$ECHO
check_yesno_input "Would you like to install dazukofs now ? [y] " $INST_DAZUKO
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
enable_unsupported_modules
$ECHO -n "installing dazuko ... "
cd contrib/dazuko
/bin/sh install_dazuko.sh
DAZUKOFS_INSTALL_FAIL="$?"
if [ "$DAZUKOFS_INSTALL_FAIL" -eq 0 ]
then
cd ../..
return 0
fi
cd ../..
else
INSTALL_DAZUKOFS='n'
NO_DAZUKO='1'
fi
# update the module list
depmod -ae > /dev/null 2>&1
# Check for a precompiled dazuko2 module
modprobe -l | grep dazuko.ko > /dev/null 2>&1
if [ "$?" -eq 0 ]
then
$ECHO
$ECHO "Precompiled Dazuko2 module was detected on your machine."
$ECHO "Running AVIRA Guard with dazuko2 is no longer officially supported."
$ECHO
check_yesno_input "Do you still want to use Guard with dazuko2 module ? [y] " $USE_DAZUKO2_IF_AVAILABLE
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
$ECHO -n "probing Dazuko2 module ..."
modprobe dazuko > /dev/null 2>&1
if [ "$?" -eq 0 ]
then
$ECHO "success"
ACTIVE_DAZUKO_LIB="libdazuko2.so"
return 0
else
$ECHO 'failed'
fi
fi
sleep 1
fi
return $DAZUKOFS_INSTALL_FAIL
}
install_guard()
{
if [ "$VARIANT" = "AVDE" ]
then
avinstall -f -S doc -s antivir_server_and_professional_en.pdf -T "$AVDIR" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc -s antivir_personal_en.pdf -T "$AVDIR" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc -s antivir_server_and_professional_de.pdf -T "$AVDIR" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc -s antivir_personal_de.pdf -T "$AVDIR" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc -s antivir_server_and_professional_en.txt -T "$AVDIR" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc -s antivir_personal_en.txt -T "$AVDIR" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc -s antivir_server_and_professional_de.txt -T "$AVDIR" -u root -g "$PROGNAME" -m 644
avinstall -f -S doc -s antivir_personal_de.txt -T "$AVDIR" -u root -g "$PROGNAME" -m 644
fi
if [ -x $AVDIR/avguard ]
then
$ECHO -n "stop running $FULLPRODUCTNAME ... "
$AVDIR/avguard stop > /dev/null 2>&1
$ECHO "done"
fi
if [ $OS = "sunos" ]
then
DAZUKOLIBS="libdazukoSolaris9.so libdazukoSolaris10.so"
else
DAZUKOLIBS="libdazuko2.so libdazuko3compat2.so"
fi
for ITEM in $DAZUKOLIBS avguard-ondemand-mgmt avguard-scanner avscan avsavapi-super avguard.bin
do
avinstall -f -S bin/$CLASSIFICATION -s $ITEM -T "$AVDIR" -u root -g "$PROGNAME" -m 755
if [ $? -ne 0 ]
then
exit 1
fi
done
add_dazuko_support
DAZUKOFS_INSTALL="$?"
if [ "$DAZUKOFS_INSTALL" -ne '0' -a "$INSTALL_DAZUKOFS" = 'y' ]
then
NO_DAZUKO='1'
$ECHO 'Dazuko installation failed'
$ECHO
$ECHO "Dazuko module (
www.dazuko.org) provides a virtual device driver allowing"
$ECHO "AVIRA Guard to provide resident realtime protection of specified directories from malicious files."
$ECHO "Guard will not offer \"on access\" protection if it does not find a loaded dazuko"
$ECHO "module or OnAccessManagement is set to \"no\". You can still continue with the"
$ECHO "installation if you are only planning to use the command-line scanner (avscan)"
$ECHO "or you are going to compile your own dazuko module later."
$ECHO
check_yesno_input "Would you like to continue the installation ? [y] " $CONTINUE_IF_DAZUKO_FAILED
if [ "$?" -eq "0" ]
then
error_message "dazuko installation failed"
exit $DAZUKOFS_INSTALL
fi
fi
$ECHO
$ECHO -n "linking $AVDIR/libdazuko.so to $AVDIR/$ACTIVE_DAZUKO_LIB ... "
rm -f $AVDIR/libdazuko.so
ln -s $AVDIR/$ACTIVE_DAZUKO_LIB $AVDIR/libdazuko.so
$ECHO "done"
if [ "$ACTIVE_DAZUKO_LIB" = 'libdazuko3compat2.so' -a "$NO_DAZUKO" -eq '0' ]
then
edit_includepath_4_fstab
mount_scan_paths
fi
if [ ! -f /etc/avira/avscan.conf ]
then
avinstall -f -S etc -s avscan.conf -T "/etc/avira" -u root -g "$PROGNAME" -m 664
if [ $? -ne 0 ]
then
exit 1
fi
fi
avinstall -f -S etc -s avscan.conf -T "/etc/avira" -t avscan.conf.default -u root -g "$PROGNAME" -m 664
avinstall -f -s build.dat -T "$AVDIR" -u root -g "$PROGNAME" -m 664
avinstall -f -S script -s avguard_start.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avguard_restart.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avguard_stop.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avguard_post.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avguardkey_post.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s start_guard_upgrade.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s smcagent_reload.sh -T "$AVDIR" -u root -g "$PROGNAME" -m 755
avinstall -f -S script -s avira_start.sh.template -T "$AVDIR" -t "$GUARDNAME" -u root -g "$PROGNAME" -m 755
cp $AVDIR/avguard $AVDIR/avguard.orig
cat $AVDIR/avguard.orig | sed -e 's,_PRODUCT_,'${PRODUCT_SCRIPT}',' -e 's,_UPD-PRODUCT_,'${UPD_PRODUCT}',' -e 's,_FULLPRODUCTNAME_,'"${FULLPRODUCTNAME_SCRIPT}"',' > $AVDIR/avguard
rm $AVDIR/avguard.orig
# check if /var/run/avguard has the correct permissions at installtime. if not, set it to default 644
if [ -d "/var/run/avguard" ]
then
chmod 711 /var/run/avguard
fi
if [ "$OS" = "sunos" ]
then
$ECHO " "
$ECHO "Version $PRODUCTVERSION of $FULLPRODUCTNAME is capable of on-access,"
$ECHO "real-time scanning of files. This provides the ultimate protection"
$ECHO "against viruses and other unwanted software. The on-access scanner"
$ECHO "(called AVIRA Guard) is based on Dazuko, a free software project providing"
$ECHO "access control."
$ECHO " "
check_yesno_input "Would you like to install dazuko now ? [y] " $INST_DAZUKO
if [ "$?" -eq "1" -o "$?" -eq "2" ]
then
KMODULE="da