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