Chapitre 511 minIntermédiaire
Datasets, utilisateurs, groupes et ACL sur TrueNAS
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- découper un pool en datasets selon les usages ;
- créer des utilisateurs et des groupes locaux ;
- choisir entre ACL NFSv4 et ACL POSIX ;
- régler des droits hérités avec l'éditeur d'ACL ;
- limiter la place prise par un dataset avec les quotas.
4 exercices corrigés
Sur TrueNAS, les droits d'accès se règlent au niveau du dataset : chaque dataset porte une liste de contrôle d'accès (ACL) qui dit quels utilisateurs et quels groupes peuvent lire, modifier ou administrer ses fichiers, et comment ces droits se transmettent aux sous-dossiers. Ce chapitre montre comment découper un pool en datasets, créer des comptes et des groupes locaux, choisir entre les ACL NFSv4 et POSIX, régler des droits hérités et limiter la place occupée avec des quotas. Le chapitre suivant branchera ces ACL sur les comptes d'Active Directory.
Découper le pool en datasets
On découpe un pool selon trois questions : qui accède à ces données, par quel protocole, et avec quelle politique de protection (fréquence des snapshots, rétention, réplication). Deux données qui diffèrent sur un de ces points vont dans deux datasets. Voici l'arborescence de srv-nas :
| Dataset | Contenu | Accès | Snapshots |
|---|---|---|---|
tank/archives | Bons de livraison scannés | SMB, groupes du domaine | Toutes les heures, gardés 2 semaines ; tous les jours, gardés 1 an |
tank/partages/linux | Fichiers échangés entre serveurs Linux | NFS | Tous les jours, gardés 1 mois |
tank/proxmox/iso | Images ISO et modèles de conteneurs | NFS, hyperviseurs | Aucun (données reconstituables) |
tank/proxmox/sauvegardes | Copie hebdomadaire de secours des VM critiques (vzdump), en plus de Proxmox Backup Server | NFS, hyperviseurs | Tous les jours, gardés 2 semaines (un hyperviseur compromis ne peut pas effacer les snapshots) |
vms/pve-vms (zvol) | Disques des VM | iSCSI, hyperviseurs | Toutes les 4 heures, gardés 2 jours |
Créer un dataset. Datasets, sélectionner le parent (par exemple tank), bouton Add Dataset :
- Name :
archives. Le chemin complettank/archivess'affiche. - Dataset Preset : le préréglage règle d'un coup l'ACL, la sensibilité à la casse et quelques options selon l'usage. SMB pour un partage Windows, Generic pour un usage Linux ou NFS, Multiprotocol pour un dossier partagé à la fois en SMB et en NFS, Apps pour les applications.
- Advanced Options si besoin : compression (laisser Inherit, donc LZ4), Enable Atime, Record Size, quotas, chiffrement. Certaines options, comme la sensibilité à la casse, ne se changent plus après la création.
- Save.
Utilisateurs et groupes locaux
Même joint à Active Directory, TrueNAS garde des comptes locaux : le compte d'administration truenas_admin, des comptes de service (pour un serveur Linux qui dépose des fichiers, pour la réplication) et, dans une structure sans annuaire, les comptes des utilisateurs eux-mêmes.
Credentials > Users > Add :
- Full Name et Username (par exemple
svc-linux) ; - Password, ou la désactivation de la connexion par mot de passe pour un compte qui n'en a pas besoin ;
- l'identifiant numérique UID, proposé automatiquement à partir de 3000 ;
- le groupe principal (créé au même nom par défaut) et des groupes secondaires ;
- SMB Access (coché par défaut), à garder pour un compte qui se connecte aux partages SMB ;
- TrueNAS Access (accès à l'interface, avec un rôle), SSH Access et Shell Access, à n'accorder qu'aux administrateurs ;
- le répertoire personnel, inutile pour un compte de service.
Credentials > Groups > Add crée un groupe, avec son identifiant GID. On donne ensuite les droits aux groupes, jamais aux comptes : c'est le principe AGDLP du cours Windows Server, qui vaut aussi sur un NAS.
Les rôles d'administration. TrueNAS distingue trois rôles pour l'interface : Full Admin (tout), Sharing Admin (gérer les partages et leurs droits) et Readonly Admin (consulter sans rien changer), choisis dans TrueNAS Access. Un technicien de niveau 1 qui doit seulement vérifier l'état des pools reçoit le rôle en lecture seule : c'est le moindre privilège.
ACL NFSv4 ou ACL POSIX
Un fichier Linux a des droits simples : un propriétaire, un groupe, les autres, et pour chacun lecture, écriture et exécution (rwx). C'est trop pauvre pour un serveur de fichiers d'entreprise, où il faut donner des droits différents à plusieurs groupes. TrueNAS propose deux sortes d'ACL, une par dataset.
| ACL NFSv4 | ACL POSIX | |
|---|---|---|
| Modèle | Proche des ACL NTFS de Windows | Extension des droits Unix rwx |
| Entrées | Autoriser ou refuser, pour des utilisateurs, des groupes, owner@, group@, everyone@ | Utilisateurs et groupes nommés, droits rwx |
| Droits | Fins : lecture, écriture, ajout, suppression, lecture des attributs, prise de possession… regroupés en Read, Modify, Traverse, Full Control | Lecture, écriture, exécution |
| Héritage | Indicateurs d'héritage par entrée, comme sous Windows | ACL « par défaut » d'un dossier, appliquée aux nouveaux fichiers |
| Préréglage de dataset | SMB, Multiprotocol | Generic |
| Modifiable depuis Windows | Oui, par l'onglet Sécurité de l'Explorateur | Partiellement |
Pour un partage SMB destiné à des postes Windows, choisis les ACL NFSv4 (préréglage SMB). Pour un dataset utilisé seulement par des serveurs Linux en NFS, les droits POSIX suffisent.
Régler une ACL pas à pas
Pour le dataset tank/partages/linux, en ACL POSIX : le compte de service svc-linux y écrit, le groupe linux-lecture le lit, personne d'autre n'y entre.
- Datasets, sélectionner
tank/partages/linux, widget Permissions, bouton Edit. - Owner :
svc-linux, Owner Group :svc-linux, cocher Apply Owner et Apply Group. - Ajouter une entrée pour le groupe
linux-lectureavec les droits Read et Execute (l'exécution, sur un dossier, permet de le traverser). - Ajouter les mêmes entrées en ACL par défaut, pour que les fichiers créés ensuite en héritent.
- Retirer tout droit aux autres (other).
- Cocher Apply permissions recursively pour appliquer l'ACL aux fichiers déjà présents, puis Save Access Control List.
En ACL NFSv4, l'éditeur propose des préréglages (bouton Use Preset) : NFS4_RESTRICTED (seuls le propriétaire et le groupe propriétaire ont accès), NFS4_OPEN (tout le monde peut tout faire, à éviter), NFS4_HOME (pour des dossiers personnels). On part d'un préréglage, puis on ajoute les entrées des groupes. Chaque entrée a un Who (utilisateur, groupe, owner@, group@, everyone@), un ACL Type (Allow ou Deny), des droits de base ou avancés et des indicateurs d'héritage (Inherit, No Inherit, ou leur détail en mode avancé).
Les droits effectifs
Pour un partage SMB, deux listes s'appliquent, comme sur un serveur Windows :
- l'ACL du dataset (le système de fichiers), qui protège les fichiers quel que soit le chemin d'accès ;
- l'ACL du partage (Edit Share ACL), qui filtre l'accès au partage lui-même, sans toucher aux fichiers.
Le droit effectif est le plus restrictif des deux. La pratique recommandée est la même que sous Windows : laisser l'ACL du partage large (les utilisateurs authentifiés en contrôle total) et régler finement l'ACL du dataset. Le calcul détaillé des droits effectifs NTFS et partage est fait dans le cours Windows Server ; il s'applique tel quel à TrueNAS.
Quotas et réservations
Sans quota, un dataset peut remplir tout le pool et bloquer les autres usages. TrueNAS propose trois niveaux.
| Réglage | Où | Effet |
|---|---|---|
Quota for this dataset (refquota) | Edit Dataset, section des quotas | Plafonne les données propres du dataset, hors snapshots et enfants |
Quota for this dataset and all children (quota) | Idem | Plafonne le dataset, ses enfants et ses snapshots |
Reserved space (refreservation, reservation) | Idem | Garantit de l'espace au dataset, retiré de l'espace libre des autres |
| Quotas par utilisateur ou par groupe | Datasets, menu du dataset, Manage User Quotas / Manage Group Quotas | Plafonne ce qu'écrit chaque utilisateur ou chaque groupe dans le dataset |
Chez Sorbier, tank/proxmox/sauvegardes reçoit un quota de 4 TiB avec ses snapshots : une rétention mal réglée dans la tâche de sauvegarde de Proxmox remplira son dataset, pas le pool. À l'inverse, tank/archives reçoit une réservation de 12 TiB : quoi qu'il arrive ailleurs, les scans de l'entrepôt trouveront de la place.
Exercices
Exercice 1 sur 4 Combien de datasets ? Réussi À revoir
Sorbier veut ajouter sur srv-nas : les photos des colis endommagés (consultées par le service client en SMB, gardées deux ans), les journaux des serveurs Linux (déposés en NFS, gardés trois mois) et une copie des modèles de conteneurs de Proxmox. Propose les datasets à créer, leur préréglage et une politique de snapshots, en justifiant chaque séparation.
Voir la réponseMasquer la réponse de l'exercice 1
| Dataset | Préréglage | Snapshots |
|---|---|---|
tank/photos-litiges | SMB (accès Windows, insensible à la casse, ACL NFSv4) | Quotidiens, gardés 2 ans, comme la durée de conservation |
tank/journaux | Generic (accès NFS par des serveurs Linux, ACL POSIX) | Quotidiens, gardés 3 mois |
Les modèles vont dans tank/proxmox/iso existant (même usage, mêmes clients, même politique) | Generic | Aucun : données téléchargeables à nouveau |
Les photos et les journaux diffèrent par le protocole, les utilisateurs et la rétention : deux datasets. Les modèles de conteneurs partagent tout avec les ISO : pas besoin d'un nouveau dataset.
Tu avais trouvé ?
Exercice 2 sur 4 NFSv4 ou POSIX ? Réussi À revoir
Pour chaque dataset, choisis le type d'ACL et justifie.
- Un partage des ressources humaines, ouvert à deux groupes du domaine avec des droits différents, modifié depuis l'Explorateur Windows.
- Un dataset où un serveur Linux dépose chaque nuit un export de base de données par NFS.
Voir la réponseMasquer la réponse de l'exercice 2
- NFSv4 (préréglage SMB) : modèle proche des ACL NTFS, droits fins par groupe, héritage par entrée, et modification possible par l'onglet Sécurité de l'Explorateur.
- POSIX (préréglage Generic) : un seul compte de service écrit, en NFS, depuis Linux ; les droits Unix et une ACL simple suffisent.
Tu avais trouvé ?
Exercice 3 sur 4 Le droit effectif Réussi À revoir
Sur le partage Archives, l'ACL du partage donne Read au groupe Domain Users du domaine. L'ACL du dataset donne Modify au groupe DL_Archives_M, dont Chloé est membre. Chloé peut-elle déposer un fichier ? Que faut-il changer, et à quel endroit ?
Voir la réponseMasquer la réponse de l'exercice 3
Non : le droit effectif est le plus restrictif des deux. Le dataset lui permet de modifier, mais le partage ne lui donne que la lecture.
Il faut élargir l'ACL du partage (par exemple les utilisateurs authentifiés du domaine en contrôle total) et laisser l'ACL du dataset faire le tri. C'est la pratique recommandée : une seule liste fine à maintenir, celle du système de fichiers.
Tu avais trouvé ?
Exercice 4 sur 4 La place qui ne se libère pas Réussi À revoir
Le dataset tank/proxmox/sauvegardes a un quota de 4 TiB, snapshots compris. Il est plein. Moussa supprime 1 TiB de vieilles sauvegardes depuis Proxmox, mais l'espace occupé ne baisse presque pas. Explique et propose une solution.
Voir la réponseMasquer la réponse de l'exercice 4
Les fichiers supprimés existent encore dans les snapshots du dataset : leurs blocs restent occupés tant qu'un snapshot y fait référence, et le quota inclut les snapshots. L'espace ne se libérera qu'à l'expiration (ou à la suppression) des snapshots qui contiennent ces fichiers.
Solutions : raccourcir la rétention des snapshots de ce dataset (une sauvegarde est déjà une copie datée : des snapshots de deux semaines suffisent amplement), ou utiliser un quota qui n'inclut pas les snapshots (refquota) et surveiller l'espace total du pool. Dans l'urgence, supprimer depuis TrueNAS les plus anciens snapshots de ce dataset.
Tu avais trouvé ?