#!/bin/bash
# script de creation d'un dossier, avec mise en place de droits
# recuperation des parametres
DROITSDEFAUT=770
while getopts "d:w:r:-:h" OPT
do
# Gestion des options longues
if test $OPT = '-' ; then
LONGOPT="${OPTARG%%=*}"
OPTARG="${OPTARG#*=}"
case $LONGOPT in
dossier) OPT="d";;
write) OPT="w";;
read) OPT="r";;
help) OPT="h";;
*) echo "option longue non permise -- $LONGOPT" >&2 ;exit
65 ;;
esac
fi
case $OPT in
d) DOSSIER=$OPTARG;;
w) WRITE=$OPTARG;;
r) READ=$OPTARG;;
h) echo "Utilisation : creationDossier.sh [arguments]"
echo "[--dossier=chemin|-d chemin] : dossier a creer"
echo "[--write=groupe|-w groupe] : groupe avec acces en ecriture"
echo "[--read=groupe|-r groupe] : groupe avec acces en lecture"
exit 0
;;
*) echo "option inconnue. creaationDossier.sh -h pour plus d'informations"
exit 65
;;
esac
done
# creation du dossier
if test -z $DOSSIER ; then
echo "le dossier a creer n'est pas renseigne" >&2
exit 65
fi
mkdir $DOSSIER
if test ! -d $DOSSIER ; then
echo "Le dossier $DOSSIER n'a pas pu etre cree"
exit 65
fi
#mise en place des droits par defaut dans le dossier
chmod $DROITSDEFAUT $DOSSIER
# mise en place des acl par defaut
setfacl -m g::- $DOSSIER
setfacl -m d:g::- $DOSSIER
# mise en place des droits en ecriture
if test ! -z $WRITE ; then
echo "ecriture des droits en ecriture pour $WRITE"
setfacl -m g:$WRITE:rwx $DOSSIER
setfacl -m d:g:$WRITE:rwx $DOSSIER
fi
# mise en place des droits en lecture
if test ! -z $READ ; then
echo "ecriture des droits en lecture pour $READ"
setfacl -m g:$READ:rx $DOSSIER
setfacl -m d:g:$READ:rx $DOSSIER
fi
# verification des droits attribues
getfacl $DOSSIER