Randomize monthly cron job time

This commit is contained in:
Bob Mottram 2015-03-10 19:24:57 +00:00
parent 1c52727b71
commit 3563f28e8d
1 changed files with 7 additions and 4 deletions

View File

@ -1060,14 +1060,14 @@ function install_not_on_BBB {
function randomize_cron {
# The predictable default timing of Debian cron jobs might
# be exploitable knowledge. Avoid too much predictability
# by randomizing the times when cron jobs run
# by randomizing the times when cron jobs run
if grep -Fxq "randomize_cron" $COMPLETION_FILE; then
return
fi
# randomize the day on which the weekly cron job runs
randdow=$(($RANDOM%6+1))
sed -i "s/* * 7/* $randdow/g" /etc/crontab
sed -i "s|\* \* 7|* * $randdow|g" /etc/crontab
# randomize the time when the weekly cron job runs
randmin=$(($RANDOM%60))
@ -1077,12 +1077,15 @@ function randomize_cron {
# randomize the time when the daily cron job runs
randmin=$(($RANDOM%60))
randhr=$(($RANDOM%3+4))
sed -i "s|25 6\t* * *|$randmin $randhr\t|g" /etc/crontab
sed -i "s|25 6\t\* \* \*|$randmin $randhr\t* * *|g" /etc/crontab
# randomize the time when the hourly cron job runs
randmin=$(($RANDOM%60))
sed -i "s|17 *\t* * *|$randmin *\t|g" /etc/crontab
sed -i "s|17 \*\t|$randmin *\t|g" /etc/crontab
# randomize monthly cron job time and day
sed -i "s|52 6\t|$randmin $randhr\t|g" /etc/crontab
sed -i "s|\t1 \* \*|\t$randdom * *|g" /etc/crontab
echo 'randomize_cron' >> $COMPLETION_FILE
}