Contexte

Nextcloud est orienté utilisateurs.

C'est à dire que si l'on souhaite partager des données à d'autres utilisateurs et/ou groupes d'utilisateurs, ces partages se retrouveront à la racine (par défaut) de chaque espace de travail des utilisateurs sans conserver toute l'arborescence.

Un exemple concret :

Un utilisateur nommé "Jean-Jacques" possède une arborescence comme suit :

Ce dossier partagé se retrouvera à la racine (par défaut) du Nextcloud des destinataires concernés.

L'arborescence complète ne sera pas visible.

Cela n'est pas adapté si l'on souhaite partager toute une arborescence avec des droits spécifiques et diverses en son sein.

C'est la que l'application Group Folders intervient.

Group Folders

Présentation

Group Folders est une application que l'on va pouvoir greffer à Nextcloud.

Cette application va permettre de configurer des dossiers partagés à un / des groupe(s) d'utilisateurs.

Ensuite, l'administrateur va pouvoir configurer finement des droits spécifiques (lecture / écriture / partage / quota) sur ces dossiers partagés.

De plus l'intérêt est qu'avec cette application, les données ne seront plus dépendantes d'un utilisateur. Par exemple si Jean-Jacques est supprimé, toutes ces données seront supprimmées ainsi que les partages qu'il a pu faire.

Lien vers le projet : https://github.com/nextcloud/groupfolders

Exemple

Dans mon Nextcloud, je possède plusieurs utilisateurs repartis dans les groupes suivant :

  • Comptabilité
  • Direction
  • Technique
  • Invité

Je souhaite déployer une arborescence de ce type au sein de mon Nextcloud :

.
├── compta # Accessible en écriture au groupe comptabilité et en lecture au groupe direction
│   ├── note_de_frais
│   └── salaires
├── direction # Accessible en écriture au groupe direction
│   ├── courriers
│   └── projets
├── public # Accessible en écriture à tous les groupes sauf au groupe invité qui sera en lecture seule
│   ├── documents
│   └── entreprise
└── technique # Accessible en écriture au groupe technique et en lecture au groupe direction
    ├── manuels
    └── procedures

Installation

Pour installer Group Folders, il faut se connecter en tant qu'admin sur la plateforme Nextcloud puis se rendre dans les Applications.

Ensuite, rechercher Group Folders puis Télécharger et activer :

Configuration

Toujours en tant qu'admin, se rendre dans les Paramètres d'Administration puis Dossiers du groupe :

Créer dans un 1er temps les dossiers qui figureront à la racine des utilisateurs :

Ensuite, y associer les groupes d'utilisateurs désirés avec les permissions adéquates :

Ici pour le dossier compta, le groupe Comptabilité pourra lire et écrire et le groupe Direction aura simplement un droit de lecture. Naturellement, je refuse que ces données soient partageables par les utilisateurs qui y auront accès.

Il est possible d'y définir un quota maximal :

Puis, définir qui pourra gérer les droits de ce dossier :

Il faut que ce soit un utlisateur / groupe qui ait accès au dossier.

Configurer l'intégralité des autorisations souhaitées comme suit :

Bien entendu, il faut ensuite créer les sous-dossiers dans chaque Group Folders dans l'espace Fichiers de Nextcloud.

Maintenant, les utilisateurs verront uniquement ce à quoi ils doivent avoir accès à la racine de leur Nextcloud.

Par exemple, pour mon utilisateur Pierre qui fait partie du groupe Comptabilité :

Autorisation avancée

Il est possible d'aller encore plus loin dans les autorisations.

Je pourrais souhaiter qu'un utilisateur qui fait partie d'un groupe (ayant des autorisations d'écriture) ait finalement qu'un droit de lecture (un stagiaire par exemple). Pour cela dans les détails d'un dossier, des règles d'autorisations avancées peuvent être appliquées :

Ici, je dis que Pierre du groupe Comptabilité peut finalement que lire et non modifier ce qui se trouve dans ce dossier :

Ligne de commande

L'intégralité de la configuration peut être réalisé en ligne de commande via occ :

  • occ groupfolders:create → create a group folder
  • occ groupfolders:delete [-f|--force] → delete a group folder and all its contents
  • occ groupfolders:expire → trigger file version and trashbin expiration (see Nextcloud docs for versionning and Nextcloud docs for the trash bin for details)
  • occ groupfolders:group [-d|--delete] [write|share|delete] → assign groups and their rights to a group folder
  • occ groupfolders:list → list configured group folders
  • occ groupfolders:permissions → configure advanced permissions (see below for details)
  • occ groupfolders:quota [|unlimited] → set a quota for a group folder
  • occ groupfolders:rename → rename a group folder
  • occ groupfolders:scan → trigger a filescan for a group folder
  • occ groupfolders:trashbin:cleanup → empty the trashbin of all group folders

Conclusion

Group Folders permet d'aller beaucoup plus loin dans la gestion des droits que peut le faire naturellement Nextcloud.

Et surtout, ces données ne sont pas dépendante d'un utilisateur.

Bien entendu, cela est synchronisable avec les clients desktop Nextcloud Windows, Mac, Linux.