ansible/roles/owncloud-autofs/templates/auto.master.d/home-owncloud.sh.j2

48 lines
1.7 KiB
Django/Jinja
Executable File

#!/bin/bash
{{ ansible_header | comment }}
# Certains user dans owncloud ont été créés sous la forme user_1234 ce qui faisait planter le autofs
# ceci est un fix
USER=$(echo $1 | sed "s/_[1-9]*$//")
UHOME=/home_adh/$USER
USERID=$(ldapsearch -LLL -b "{{ ldap.base }}" -H {{ ldap.uri }} -D "{{ ldap.base_dn }}" -w {{ ldap.password }} "uid=$USER" uidNumber | grep uidNumber | awk '{print $2}')
UGROUP=$(ldapsearch -LLL -b "{{ ldap.base }}" -H {{ ldap.uri }} -D "{{ ldap.base_dn }}" -w {{ ldap.password }} "uid=$USER" gidNumber | grep gidNumber | awk '{print $2}')
# On quitte si l'utilisateur $USER n'existe pas
if [ -z "$USERID" ]; then
logger -p local0.error -t autofs "user $USER n'existe pas"
exit 1
fi
# Rafraîchi les stats du dossier
/bin/ls ${UHOME}/OwnCloud/ &>/dev/null || /bin/ls ${UHOME} &>/dev/null
# Création du dossier OwnCloud s'il n'existe pas ou n'appartient pas a l'utilisateur
if [ ! -d "${UHOME}/OwnCloud" ] || ! (
/usr/bin/find ${UHOME}/OwnCloud/ -maxdepth 0 -user $USERID -group ${UGROUP} |
/bin/grep -q ${UHOME}/OwnCloud/
); then
if [ ! -d "${UHOME}/OwnCloud" ]; then
mkdir ${UHOME}/OwnCloud
fi
chmod 700 ${UHOME}/OwnCloud &&
chown $USERID:${UGROUP} ${UHOME}/OwnCloud
if [ ! -d "${UHOME}/OwnCloud" ] || ! (
/usr/bin/find ${UHOME}/OwnCloud/ -maxdepth 0 -user $USERID -group ${UGROUP} |
/bin/grep -q ${UHOME}/OwnCloud/
); then
logger -p local0.error -t autofs "impossible de créer le dossier ${UHOME}/OwnCloud"
exit 1
fi
logger -p local0.info -t autofs "Dossier ${UHOME}/OwnCloud créé"
fi
chmod 750 /home-owncloud &&
chown www-data:root /home-owncloud &&
echo "-fstype=fuse.bindfs,map=$USERID/www-data:@$UGROUP/@www-data,resolve-symlinks :${UHOME}/OwnCloud"