How can I make a backup of all users accounts? I have this script .sh to run on my OS but it says permission denied at run it, I'm Running this .sh with root user

Code:
#/bin/bash
##
# JSJ 2012

BACKUP_DIR=/opt/backup
DATE=`date +%d%b%Y`
# LOG=$BACKUP_DIR/$DATE/$DATE.log
# touch $BACKUP_DIR/$DATE/$DATE.log
mkdir $BACKUP_DIR/$DATE
touch $BACKUP_DIR/$DATE/$DATE.log
LOG=$BACKUP_DIR/$DATE/$DATE.log
OLD=$(date +%d%b%Y –date=’15 days ago’)
# Create list and save usuarios.txt
/opt/zimbra/bin/zmprov -l gaa >> $BACKUP_DIR/$DATE/usuarios.txt
for user in `cat $BACKUP_DIR/$DATE/usuarios.txt`; do
echo ” Creating backup of ” $user “” >> $LOG
# Exporting emails of user in format usuario.tgz.
sudo -u zimbra /opt/zimbra/bin/zmmailbox -z -m $user getRestURL “//?fmt=tgz” > $BACKUP_DIR/$DATE/$user.tgz
done
if [ -d $BACKUP_DIR/$OLD ] # Si el directorio existe..
then
echo “Delete folder 15 days ago.” >> $LOG
rm -rf /opt/backup/$OLD
else
echo “Folder doesn't exist.” >> $LOG
fi