Script – Externaliser les données des utilisateurs ownCloud

I. Présentation

Si vous utilisez le gestionnaire de fichiers ownCloud mais que vous utilisez un espace de stockage externe, comme un NAS par exemple, et que vous souhaitez que chacun de vos utilisateurs ownCloud possède un accès à un répertoire personnel sur ce NAS, ce script est fait pour vous !

En effet, lorsque vous exécuterez ce script Bash sur votre serveur ownCloud, celui-ci vous demandera de saisir le nom de l'utilisateur pour qui le répertoire sur le NAS doit être créé. Ensuite, un dossier portant le nom de cet utilisateur sera créé sur l'espace de stockage externe, et, un lien symbolique entre ce répertoire et le répertoire ownCloud de cet utilisateur sera créé.

De ce fait, les données de vos utilisateurs seront stockées sur le NAS (votre espace de stockage externe) et non sur votre serveur ownCloud. Les données sont donc externalisées du serveur web.

A chaque fois que vous créerez un utilisateur, vous devez exécuter à nouveau le script afin que l'externalisation des données s'applique à ce nouvel utilisateur.

Note : Assurez-vous d’avoir un bon débit de connexion entre le NAS et le serveur ownCloud, afin que ce soit performant.

Dans le cadre de mes tests, j'ai utilisé un NAS qui utilisait un système de fichiers Unix (ext3). Ce qui n'a pas posé de problème de permissions pour la création des répertoires à distance sur le NAS.

II. Le script

Voici le code complet du script avec quelques commentaires afin de vous aider à mieux le comprendre. Vous devez modifier une ou deux choses dans le code, ou plutôt, une ou deux variables :

- NAS : Variable qui permet de définir le chemin vers le point de montage du NAS afin que le serveur web ownCloud puisse accéder à votre NAS. Exemple : /media/nas

- OWNDATA : Variable qui permet de définir le chemin vers le répertoire « data » de ownCloud, qui par défaut est : /var/www/owncloud/data. A adapter si besoin.

#!/bin/bash
# Variables
NAS=/media/nas # Répertoire du point de montage correspondant au NAS
OWNDATA=/var/www/owncloud/data # Répertoire DATA dans owncloud (contient les dossiers utilisateurs)
## ---------------------------------------------------------------- Fonction de création du répertoire utilisateur
ADD() {
if [ ! -d $NAS/$USR ]
then
mkdir $NAS/$USR
ln -s $NAS/$USR $OWNDATA/$USR
echo -e " Dossier cree pour l'utilisateur "$USR"\n"
else
echo " Utilisateur deja existant !"
fi
}
## ---------------------------------------------------------------- Programme principal
echo -n " Nom de l'utilisateur : "
read USR
if [[ $USR == "" ]]
then
echo " Nom d'utilisateur vide !"
else
ADD
fi

III. Monter l’espace de stockage externe

Pour que le serveur web ownCloud accède à votre espace de stockage externe, c’est-à-dire un NAS dans le cas de ce tutoriel, vous devez monter le partage au sein de votre serveur web Linux.

Par exemple, si le NAS a pour adresse IP « 192.168.1.200 », que le partage se nomme « owncloud_storage », et, que les identifiants de connexion sont « root » et le mot de passe « 123456 » cela donnera (en montant le partage dans « /media/nas ») :

mount -t cifs //192.168.1.200/owncloud_storage /media/nas -o username=root,password=123456

Note : Le protocole réseau CIFS est utilisé pour accéder au partage.

IV. Permissions

Les permissions de bases du fichier « addUser.sh » correspondante à notre script doivent être modifiées, pour que celui-ci puisse être exécuté. Le droit d’exécution doit être ajouté grâce à la commande suivante :

chmod +x addUser.sh

Enfin, exécutez le script grâce à la commande suivante pour chacun de vos utilisateurs :

./addUser.sh
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5558.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.