CasperSecurity

Current Path : /etc/cron.daily/
Upload File :
Current File : //etc/cron.daily/popularity-contest

#!/bin/sh
set -e

# don't run if this package is removed but not purged
if [ ! -f /usr/sbin/popularity-contest ]; then
	exit 0
fi

MODE="$1"

unset MAILFROM
unset MAILTO
unset MY_HOSTID
unset PARTICIPATE
unset SUBMITURLS
unset USEHTTP
unset USETOR
unset MTAOPS

TORIFY_PATH=/usr/bin/torify

torify_enabled() {
    # Return 1 to enable torify for HTTP submission, otherwise 0; exit on error
    TORSOCKS_PATH=/usr/bin/torsocks
    [ -f "$TORIFY_PATH" ] && [ -f "$TORSOCKS_PATH" ] && TOR_AVAILABLE=1

    case "$USETOR" in
        "yes")
            if [ -z $TOR_AVAILABLE ]; then
                echo "popularity-contest: USETOR is set but torify is not available." 2>&1
                echo "popularity-contest: Please install the tor and torsocks packages." 2>&1
                exit 1
            fi
            if [ "yes" != "$USEHTTP" ]; then
                echo "popularity-contest: when USETOR is set USEHTTP must be set as well" 2>&1
                exit 1
            fi
            return 0
        ;;
        "maybe")
            [ "yes" = "$USEHTTP" ] && [ ! -z $TOR_AVAILABLE ] && return 0
            return 1
        ;;
        "no")
            return 1
        ;;
    esac
}

# get configuration information
. /usr/share/popularity-contest/default.conf
. /etc/popularity-contest.conf

if test -d /etc/popularity-contest.d/; then
  for file in `run-parts --list --regex '\.conf$' /etc/popularity-contest.d/`;
  do
   . $file
  done
fi

# filter out Ubuntu's popcon email address
if echo $MAILTO | grep -q 'popcon@ubuntu.com'; then
    logger -t popularity-contest "Ubuntu is no longer collecting package statistics. You can safely remove its email address. Please consider disabling or uninstalling it by running 'sudo dpkg-reconfigure popularity-contest' or 'sudo apt remove --purge popularity-contest'."
    MAILTO="$(echo $MAILTO | sed 's:popcon@ubuntu.com::g')"
fi

# don't run if MAILTO address is blank, and not configured to use HTTP POST!
if [ -z "$MAILTO" ] && [ "yes" != "$USEHTTP" ]; then exit 0; fi

# don't run if PARTICIPATE is "no" or unset!
if [ "$PARTICIPATE" = "no" ] || [ -z "$PARTICIPATE" ]; then exit 0; fi

# enable torify
if torify_enabled; then
    TORIFY=$TORIFY_PATH
else
    TORIFY=''
fi


if [ -n "$HTTP_PROXY" ]; then
  export http_proxy="$HTTP_PROXY";
fi

POPCONVAR=/var/lib/popularity-contest
POPCONOLD=/var/log/popularity-contest
POPCONNEW=/var/log/popularity-contest.new
POPCON="$POPCONNEW"

last_sub()
{
  if [ -r "$POPCONVAR/lastsub" ] ; then
    cat "$POPCONVAR/lastsub"
  else
    date -r "$POPCONOLD" +%s
  fi
}
set_sub()
{
  test -d "$POPCONVAR" || mkdir -p "$POPCONVAR"
  date +%s > "$POPCONVAR/lastsub"
}

# Only run on the given day, to spread the load on the server a bit
if [ "$MODE" != "--crond" ]  || ( [ "$DAY" ] && [ "$DAY" != "$(date +%w)" ] ) ; then
	# Ensure that popcon runs at least once in the last week
	if [ -f "$POPCONOLD" ] ; then
		now=$(date +%s)
		lastrun=$(last_sub)
                if [ "$MODE" = "--crond" ]; then
			# 7.5 days, in seconds
			week=648000
	        else
			# 6.5 days, in seconds
			week=561600
                fi
		if [ "$(( $now - $lastrun ))" -le "$week" ]; then
			exit 0
		fi
	fi
fi

# keep old logs
cd /var/log
umask 022
savelog -c 7 popularity-contest >/dev/null

do_sendmail()
{
	if [ -n "$MAILFROM" ]; then
		sendmail -oi $MTAOPS -f "$MAILFROM" $MAILTO
	else
		sendmail -oi $MTAOPS $MAILTO
	fi
}

# generate the popularity contest data

/usr/sbin/popularity-contest --su-nobody > $POPCON

GPG=/usr/bin/gpg

if [ "$ENCRYPT" = "yes" ] && ! [ -x "$GPG" ]; then
  logger -t popularity-contest "encryption required but gpg is not available."
  echo "popularity-contest: encryption required but gpg is not available." 2>&1
  exit 1
fi

if [ -x "$GPG" ] && [ "$ENCRYPT" = "maybe" ] || [ "$ENCRYPT" = "yes" ]; then
  POPCONGPG="$POPCON.gpg"
  rm -f "$POPCONGPG"
  GPGHOME=`mktemp -d`
  $GPG --batch --no-options --no-default-keyring --trust-model=always \
       --homedir "$GPGHOME" --keyring $KEYRING --quiet \
       --armor -o "$POPCONGPG" -r $POPCONKEY --encrypt "$POPCON"
  rm -rf "$GPGHOME"
  POPCON="$POPCONGPG"
fi

SUBMITTED=no

# try to post the report through http POST
if [ "$SUBMITURLS" ] && [ "yes" = "$USEHTTP" ]; then
    for URL in $SUBMITURLS ; do
	if echo $URL | grep -q 'popcon.ubuntu.com'; then
		logger -t popularity-contest "Ubuntu is no longer collecting package statistics. You can safely remove $URL. Please consider disabling or uninstalling it by running 'sudo dpkg-reconfigure popularity-contest' or 'sudo apt remove --purge popularity-contest'."
	elif setsid $TORIFY /usr/share/popularity-contest/popcon-upload \
	    -u $URL -f $POPCON 2>/dev/null ; then
		SUBMITTED=yes
	        set_sub
	else
		logger -t popularity-contest "unable to submit report to $URL."
	fi
    done
fi

# try to email the popularity contest data
# skip emailing if USETOR is set

if [ "$MODE" = "--crond" ] && [ yes != "$SUBMITTED" ] && [ yes != "$USETOR" ] && [ "$MAILTO" ]; then
    if [ -x "`which sendmail 2>/dev/null`" ]; then
	(
	    if [ -n "$MAILFROM" ]; then
	       	echo "From: <$MAILFROM>"
	    	echo "Sender: <$MAILFROM>"
	    fi
	    echo "To: $MAILTO"
	    echo "Subject: popularity-contest submission"
	    echo "MIME-Version: 1.0"
	    echo "Content-Type: text/plain"
	    echo
	    cat $POPCON
	) | do_sendmail
	SUBMITTED=yes
    else
	logger -t popularity-contest "unable to submit report using sendmail."
    fi
fi

if [ "yes" != "$SUBMITTED" ] ; then
	logger -t popularity-contest "unable to submit report."
else
	mv $POPCONNEW $POPCONOLD
	if [ -n "$POPCONGPG" ]; then
		mv $POPCONNEW.gpg $POPCONOLD.gpg
	fi
fi
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY