Nextcloud : limiter les types de fichiers par groupe (selon le contenu réel, pas l'extension)

Guide pratique de Types de fichiers autorisés pour Nextcloud : neuf types, règles par groupe et pour les liens publics, préréglages, vérification au niveau du stockage (web, clients, WebDAV) et refus explicites.

Si vous administrez un Nextcloud pour une famille, un club ou une petite équipe, vous avez sûrement déjà vécu cette situation : quelqu'un dépose un fichier dans un dossier partagé et vous ne découvrez que plus tard qu'il n'était pas ce qu'il prétendait être. Le blocage par extension intégré à Nextcloud aide un peu, mais une extension n'est qu'une étiquette sur le fichier. Renommez un programme en photo.jpg et l'étiquette ment. La seule façon fiable de limiter les types de fichiers dans Nextcloud consiste à regarder ce que le fichier contient réellement.

C'est ce que fait Types de fichiers autorisés. C'est un plugin Nextcloud qui vous permet de décider, par groupe, quels types de fichiers peuvent être téléversés, en jugeant à la fois les octets du fichier (ses nombres magiques) et son nom. Les deux doivent être autorisés : un programme renommé en photo.jpg reste un programme, et une image nommée setup.exe reste refusée. Ce tutoriel détaille l'installation, les neuf types, les règles par groupe et pour les liens publics, et comment tester avant de déployer quoi que ce soit.

Prérequis

  • Nextcloud 30 à 34 avec PHP 8.1 ou plus récent.
  • Un compte MediaLab Works avec un abonnement actif, une licence à vie dans sa fenêtre de mises à jour, ou la boîte d'essai gratuite de 30 jours.
  • Un accès shell au serveur (pour les commandes d'installation et la commande de test occ).
  • Rien d'autre : l'application ne nécessite aucun outil externe.

Étape 1 : installer et activer l'application

Connectez-vous à votre compte MediaLab Works, ouvrez Licences et téléchargez l'archive filetypes-x.y.z.tar.gz. Extrayez-la ensuite dans votre dossier d'applications pour obtenir apps/filetypes/, propriété de l'utilisateur du serveur web :

cd /var/www/nextcloud/apps
sudo tar -xzf ~/filetypes-x.y.z.tar.gz
sudo chown -R www-data:www-data filetypes

Activez-la en ligne de commande ou depuis la page Applications :

sudo -u www-data php occ app:enable filetypes

Étape 2 : activer la licence

Ouvrez Paramètres d'administration → Types de fichiers autorisés → Licence, collez votre clé de licence et enregistrez. L'application contacte le serveur de licences, lie la clé à cette instance et affiche la licence comme Active. La licence est vérifiée une fois par jour ; sans internet, l'application continue de fonctionner 7 jours après la dernière vérification réussie, puis s'arrête jusqu'à ce qu'elle puisse vérifier à nouveau. Si la licence expire, rien n'est supprimé : les téléversements cessent simplement d'être vérifiés et vos règles s'appliquent de nouveau une fois la licence valide.

Étape 3 : découvrir les neuf types

Avant de cocher des cases, il est utile de savoir comment les fichiers sont classés. L'application regroupe tout en neuf types :

  • Images
  • Vidéos
  • Audio
  • Documents — texte brut, texte enrichi, fichiers bureautiques, PDF, livres numériques, e-mail et similaires
  • Archives
  • Code et pages web — HTML, JavaScript, scripts, SVG et similaires
  • Programmes et installateurs — exécutables Windows et Linux, APK, deb/rpm/AppImage, JAR et similaires
  • Polices
  • Tout le reste

Deux d'entre eux méritent votre attention. Les fichiers SVG comptent comme Code et pages web, pas comme images, parce que c'est ce qu'ils sont. Et un script enregistré en .txt reste un script : il ne passera donc pas comme document. Gardez ces deux points en tête lorsque vous concevez vos règles.

Étape 4 : définir les règles par groupe

Ouvrez Paramètres d'administration → Types de fichiers autorisés. La page affiche une ligne par groupe, une case à cocher par type et une option Aucune restriction par ligne. Cochez ce que les membres de ce groupe peuvent téléverser.

Quelques points faciles à manquer :

  • Les règles se combinent de façon permissive. Une personne appartenant à plusieurs groupes peut téléverser tout ce que l'un de ses groupes autorise. Si un utilisateur restreint peut encore tout téléverser, cherchez un second groupe en Aucune restriction.
  • Les administrateurs ne sont pas à part. Le groupe admin a besoin de sa propre ligne (ou de Aucune restriction) si vous ne voulez pas limiter les administrateurs.
  • Tous les autres est une ligne distincte pour les personnes qui ne sont dans aucun groupe doté d'une règle. Elle est sans restriction par défaut, ce qui leur conserve le comportement précédent.
  • Liens publics est sa propre ligne, qui couvre les téléversements par des personnes sans compte — dépôt de fichiers et partages avec téléversement activé.

Étape 5 : partir d'un préréglage

Vous n'êtes pas obligé de cocher chaque case à la main. Trois préréglages vous donnent un point de départ raisonnable :

  • media only
  • media + documents
  • everything but code and programs

Choisissez-en un, ajustez les lignes de vos groupes, puis cliquez sur Enregistrer. Les règles s'appliquent dès le téléversement suivant.

Étape 6 : savoir où la vérification s'exécute

La vérification s'exécute au niveau du stockage : elle n'est donc pas liée à une seule interface. Elle couvre l'interface web, les clients de bureau et mobile, WebDAV, les téléversements par lien public et les fichiers enregistrés par d'autres applications (Text, Office et similaires). C'est important en pratique : une règle qui ne protégerait que le formulaire de téléversement web serait triviale à contourner avec un client de synchronisation ou une requête curl en WebDAV. Ici, la même règle suit le fichier où qu'il arrive.

Une exception volontaire : les fichiers écrits par les commandes occ et les tâches en arrière-plan ne sont pas vérifiés, car il ne s'agit pas d'un téléversement par un utilisateur.

Étape 7 : voir ce que voient les utilisateurs

Lorsqu'un fichier est refusé, il est supprimé immédiatement et la personne en est informée avec la raison, dans le client ou sur la page web. Le message indique le fichier, le type détecté et ce qui est autorisé, par exemple :

« setup.exe » n'est pas accepté : il s'agit de Programmes et installateurs, et vous ne pouvez téléverser que Images, Vidéos, Documents.

Ce genre de message vous évite un ticket de support. L'utilisateur sait immédiatement s'il a choisi le mauvais fichier ou si la règle est simplement plus stricte qu'il ne le pensait.

Étape 8 : tester avant de déployer

Deux façons existent de vérifier un fichier sans toucher à vos règles en production.

Boîte d'essai sur la page des paramètres : choisissez un fichier de votre ordinateur et voyez ce qu'il compte comme (par ses octets et par son nom) et quels groupes peuvent le téléverser. Seuls ses 64 premiers Ko sont envoyés, et rien n'est stocké.

Depuis un terminal, pour un fichier déjà présent sur le serveur :

sudo -u www-data php occ filetypes:test <file> [name]

Cette commande vous indique ce que compte le fichier local et qui peut le téléverser. Lancez-la sur quelques fichiers que vos utilisateurs manipulent réellement — un export bureautique, un PDF scanné, un logo SVG — avant de resserrer les règles d'un groupe.

Conseils et dépannage

Un fichier est refusé alors que son extension est autorisée. Ses octets disent autre chose. Un script enregistré en .txt, ou un SVG, sera classé comme Code et pages web. Vérifiez-le avec la Boîte d'essai ou occ filetypes:test.

Les fichiers déjà présents dans le cloud sont toujours là. C'est voulu. Les règles s'appliquent aux nouveaux téléversements, déplacements et copies ; les fichiers existants ne sont pas touchés. Si vous avez besoin d'une base propre, passez en revue les anciens contenus séparément.

Un utilisateur d'un groupe restreint peut encore tout téléverser. Il appartient aussi à un autre groupe en Aucune restriction, et le groupe le plus permissif l'emporte. Vérifiez d'abord les appartenances aux groupes, puis les règles.

Les liens publics sont toujours ouverts. N'oubliez pas que Liens publics a sa propre ligne. Resserrer les règles des groupes ne change rien au dépôt anonyme de fichiers tant que vous n'avez pas modifié cette ligne aussi.

Confidentialité. Seuls les 64 premiers Ko d'un fichier sont lus pour déterminer ce qu'il est, et l'application ne stocke rien à propos du fichier.

Conclusion

Le blocage par extension est un panneau sur la porte ; les règles fondées sur le contenu sont la serrure. Types de fichiers autorisés vous offre neuf types compréhensibles, des règles par groupe, une ligne distincte pour tous les autres et une pour les liens publics, et une application au niveau du stockage sur le web, les clients et WebDAV — avec des messages de refus qui s'expliquent d'eux-mêmes. Partez d'un préréglage, testez quelques fichiers réels avec la Boîte d'essai ou occ filetypes:test, et resserrez un groupe à la fois.

Pour le parcours complet, consultez le guide utilisateur ; pour les notes de version, le journal des modifications. D'autres ressources d'auto-hébergement se trouvent dans notre base de connaissances, et si quelque chose se comporte de façon inattendue, consultez la FAQ ou contactez-nous.

Cet article a été rédigé avec l’aide de l’IA à partir de la documentation de nos produits ou des sources indiquées et vérifié automatiquement avant publication.

À lire ensuite

Vous utilisez Emby, Jellyfin ou Nextcloud ?

Nos plugins et applications ajoutent la TV en direct, les sous-titres, l’inscription et la sécurité à votre propre serveur, avec un essai gratuit.