evoadmin-mail/evoadmin/docs/inc/evoadmin.sh

101 lines
2 KiB
Bash

#!/bin/sh
PASSWORD='xxx'
DATE=$(date +"%d-%m-%Y")
while getopts "p:qu:g:sad" option ; do
case $option in
p)
READPASS=$OPTARG
;;
q)
QUOTA='on'
;;
u)
USERIS=$OPTARG
;;
g)
GROUPIS=$OPTARG
;;
s)
SIZE='on'
;;
a)
ADD='on'
;;
d)
DEL='on'
;;
*)
echo "script error"
exit 1
;;
esac
done
if [ "$PASSWORD" != "$READPASS" ]; then
echo "Invalid password"
echo "Use -p <password>"
exit 1
fi
if [ "$QUOTA" == "on" ]; then
if [ -n "$USERIS" ]; then
NOW=`LANG=C quota $USERIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f2`
LIMIT=`LANG=C quota $USERIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f3`
echo "$NOW/$LIMIT"
exit 0
fi
if [ -n "$GROUPIS" ]; then
# no quota
if LANG=C quota -g $GROUPIS | grep none > /dev/null; then
echo "0/0"
exit 0
fi
NOW=`LANG=C quota -g $GROUPIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f2`
LIMIT=`LANG=C quota -g $GROUPIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f3`
echo "$NOW/$LIMIT"
exit 0
fi
fi
if [ "$SIZE" == "on" ]; then
NOW=`df | grep "/home" | tr -s " " | cut -d " " -f3`
LIMIT=`df | grep "/home" | tr -s " " | cut -d " " -f2`
echo "$NOW/$LIMIT"
exit 0
fi
if [ "$ADD" == "on" ]; then
if [[ -n $USERIS && $GROUPIS && ! -e "/home/$USERIS" ]]; then
mkdir /home/$USERIS
chmod 0700 /home/$USERIS
chown "$USERIS:$GROUPIS" /home/$USERIS
setquota -u $USERIS 5000000 8000000 0 0 -a
echo "Mail d'initialisation du compte." |\
mail -s "Premier message" $USERIS@localhost
exit 0
fi
fi
if [ "$DEL" == "on" ]; then
if [[ -n $USERIS && -e "/home/$USERIS" ]]; then
mv /home/$USERIS /home/$USERIS.$DATE
exit 0
fi
fi
exit 1