Enviado em 02/05/2013 - 20:08h
Galera, o negócio é o seguinte, hoje eu estava aqui sem fazer nada então eu fiz este script pra atualizar os arquivos /etc/hosts e /etc/hosts.deny com a blacklist do http://someonewhocares.org/hosts/hosts">http://someonewhocares.org/hosts/hosts
#!/bin/sh
#
# This script was made to update your /etc/hosts and /etc/hosts.deny with a blacklist located in http://someonewhocares.org/hosts/
# Written by phoemur - apr/2013
#############
# Variables #
#############
TMP_DIR=/tmp
ROOT_UID=0 #Only users with $UID 0 have root privileges.
E_NOTROOT=87 #Non-root exit error.
E_INVALID=88 #Invalid file exit
E_ARGUMENTS=89 # Invalid arguments exit
WGET=`which wget`
SED=`which sed`
GREP=`which grep`
DIFF=`which diff`
HOSTS_URL=http://someonewhocares.org/hosts/hosts">http://someonewhocares.org/hosts/hosts #File already in txt format
# If possible, log events in /var/log/messages:
if [ -f /var/run/syslogd.pid -a -x `which logger` ]; then
LOGGER=`which logger`
else # output to stdout/stderr:
LOGGER=/bin/cat
fi
######################
# To be or not to be #
######################
if [ "$UID" -ne "$ROOT_UID" ]; then
echo "Must be root to run this script."
exit $E_NOTROOT
fi
#############
# Functions #
#############
get_hosts() {
if [ -f "$TMP_DIR/hosts" ]; then
mv $TMP_DIR/hosts $TMP_DIR/hosts.oldtmp
fi
$WGET -c $HOSTS_URL -O $TMP_DIR/hosts
}
update_etc() {
$DIFF -q $TMP_DIR/hosts /etc/hosts > /dev/null
if [ $? ]; then
echo "It is not necessary to update your hosts file" | $LOGGER
echo "Your hosts are already up-to-date!!!"
else
$GREP -q ^127.0.0.1 $TMP_DIR/hosts > /dev/null # Validating the downloaded file
if [ ! $? ]; then
echo "The hosts file downloaded is invalid"
exit $E_INVALID
else # Upgrading
cp /etc/hosts /etc/hosts.old
cp $TMP_DIR/hosts /etc/hosts
cp /etc/hosts.deny /etc/hosts.deny.old
$SED 's/^127\.0\.0\.1/ALL:/g' $TMP_DIR/hosts > /etc/hosts.deny
echo "There is new version of hosts avaiable which was already upgraded" | $LOGGER
$SED -n '/Last.updated/{s/^#.*updated: \(.*$\)/\1/p}' $TMP_DIR/hosts | $LOGGER
echo "Hosts Upgraded Successfully!!!"
fi
fi
}
usage() {
cat << EOF
This script updates your /etc/hosts and your
/etc/hosts.deny based in the blacklist located
here: http://someonewhocares.org/hosts/hosts">http://someonewhocares.org/hosts/hosts
Options: --upgrade (Updates your hosts)
--update (Only downloads the new file for inspection.
Location: /tmp/hosts)
--help (Displays this help)
EOF
}
############
### MAIN ###
############
case "$1" in
'--upgrade')
get_hosts
update_etc
exit 0
;;
'--update')
get_hosts
echo "Your hosts file is located at /tmp for inspection"
exit 0
;;
'--help')
usage
exit 0
;;
*)
usage
exit $E_ARGUMENTS
esac
# End of script