diff --git a/Cfg/etc/auto.home-owncloud/auto.home-owncloud b/Cfg/etc/auto.home-owncloud/auto.home-owncloud index dabf073..d2491b4 100755 --- a/Cfg/etc/auto.home-owncloud/auto.home-owncloud +++ b/Cfg/etc/auto.home-owncloud/auto.home-owncloud @@ -7,16 +7,25 @@ if ! /usr/bin/id $1 &>/dev/null; then logger -p local0.error -t autofs "user $1 n'existe pas" exit 1 fi -# Création du dossier OwnCloud s'il n'existe pas -if [ ! -d "/home/$1/OwnCloud" ]; then - sftp -b <(echo mkdir /home/$1/OwnCloud) $1@127.0.0.1 &>>/dev/null - # La création a échoué - if [ ! -d "/home/$1/OwnCloud" ]; then - logger -p local0.error -t autofs "impossible de créer le dossier /home/$1/OwnCloud" - exit 1 - fi + +# Rafraîchi les stats du dossier +ls /home/$1/OwnCloud/ &>/dev/null + +# Création du dossier OwnCloud s'il n'existe pas ou n'appartient pas a l'utilisateur +if [ ! -d "/home/$1/OwnCloud" ] || ! ( + find /home/$1/OwnCloud/ -maxdepth 0 -user $1 -group users | + grep -q /home/$1/OwnCloud/ +); then + mkdir -p /home/$1/OwnCloud && + chmod 700 /home/$1/OwnCloud && + chown $1:users /home/$1/OwnCloud || + ( + logger -p local0.error -t autofs "impossible de créer le dossier /home/$1/OwnCloud" + exit 1 + ) logger -p local0.info -t autofs "Dossier /home/$1/OwnCloud créé" fi + chmod 750 /home-owncloud && chown www-data:root /home-owncloud && echo "-fstype=fuse,port=22,rw,uid=33,gid=33,allow_other,nodev,noatime,delay_connect,reconnect,workaround=all,ConnectTimeout=1,transform_symlinks,follow_symlinks,idmap=user,intr,bg :sshfs\#$1@127.0.0.1\:/home/$1/OwnCloud"