#! /bin/bash
# cp-fix home perms 

# Only once at a time please
exec 200<$0
flock -n 200 || exit 1

pscript=$(basename $0)
TODAY=$(date  +"%Y-%b-%d")
YESTERDAY=$(date -d yesterday  +"%Y-%b-%d")
PWDIR="/root/.preports/"$pscript""
OUTFILE="$PWDIR/fixed_homeperms"

#setting environment
env_set() 
{
if [ ! -d "$PWDIR" ]; then
                mkdir -p "$PWDIR" ;
        else
        rm -f $PWDIR/*
fi
}
env_set

# cpanel check
if ! [ -f "/usr/local/cpanel/cpanel" ]; then
       echo "-" | tee $OUTFILE
       exit
fi

# fix perms
for i in $(awk -F ": " '{print $2}' /etc/trueuserdomains | sort | uniq  ) ; do 
        echo "chown -Rv $i:$i /home/$i"
        echo "chown -v $i:nobody /home/$i/public_html"
        echo "/scripts/mailperm --verbose $i"
        #echo "find /home/$i/public_html/ -type f -name \*.php -exec chmod 640 {} \;" 
        #echo "find /home/$i/public_html/ -type f ! -name \*.php -exec chmod 644 {} \;"
        #echo "find /home/$i/public_html/ -type d -exec chmod 755 {} \;"
        echo "chmod 750 /home/$i/public_html"
done  >  /backup/pfix

cd /backup
split -l $(( $( wc -l < pfix  ) / 10 + 1 )) pfix  pfix.
for i in $(ls -a1 pfix.a*) ; do 
        screen -dmS $i -- sh $i 
done

fixperms_monitor () {
while ps auwfx| grep SCREEN|grep pfix   ; do
                        sleep 10
                done
                echo "::: permfix complete [ OK ] :::"
}
fixperms_monitor

screen -dmS mailpermfix /scripts/mailperm --verbose
