Tuto FreeNAS 9.3 : Utilisateurs, datasets et permissions

Quatrième partie de la série de tutoriels consacrée à la mise en place d’un NAS avec FreeNAS. Précédemment, nous avons créé notre pool de stockage, nous voici alors avec cet énorme espace à organiser. C’est ce que nous allons voir maintenant en créant des utilisateurs et en leur attribuant à chacun un espace de stockage, le tout en gérant les permissions d’accès.

Comme dans l’étape précédente, nous allons avant tout commencer par réfléchir. C’est une étape clé, il faut absolument savoir comment on va s’organiser avant de commencer.

Faire le point sur les besoins

Dans le cadre de ce tuto nous allons avoir 3 utilisateurs : Pierre, Paul et Jacques. Chacun aura un dataset « privé » auquel il sera le seul à avoir accès. Pierre et Paul utilisent Windows, Jacques est sur Mac.

Schéma des accès

Schéma des accès

Pierre et Paul auront tous deux un accès libre à un dataset Medias, leur permettant de mettre en commun leur musique et films. Et enfin un dataset Public sera disponible pour les fichiers que les trois utilisateurs souhaiterons se partager et ce dataset sera ouvert en lecture à toute autre personne connectée à leur réseau.

Comprendre la gestion des droits

Un des point clé pour bien comprendre ce que nous faisons est d’être familiarisé avec la gestion des permissions UNIX. C’est en effet par ce système simple que l’on va régler les accès, depuis le NAS, à nos différents datasets. Si vous avez ensuite des besoins avancés en terme de gestion de droits pour des fichiers ou dossiers individuels il faudra le faire via le système d’exploitation client : c’est là qu’entrent en jeu les ACLs. Nous n’aborderons pas ce point ici et resterons sur les permissions de base type UNIX.

Il est très important de comprendre les notions d’utilisateur, de groupe, de propriétaire ainsi que les actions sur lesquelles les droits sont  attribuables : Read, Write, Execute.

Allez lire les 2 premiers chapitres de la page Wikipedia consacrée aux permissions UNIX, il est indispensable de maîtriser cela et c’est relativement simple.

Création des datasets

Maintenant que l’on a mis à plat ce que l’on souhaite faire, on va commencer par « découper » notre espace de stockage pour chaque usage. On va d’abord créer un dataset pour chacun de nos utilisateurs et on va leur attribuer 200Go chacun, c’est un exemple et l’intérêt est ici de voir que cela n’est pas fixe et peut être augmenté ou modifié ultérieurement à volonté.

Donc dans Storage -> Volumes -> /mnt/Stockage (dans mon cas) -> Create Dataset :

Création d'un dataset

Création d’un dataset

Ici je choisi de donner aux datasets le même nom que l’utilisateur qui l’utilisera, en effet ce sera également son dossier home, servant à stocker les fichiers cachés propres à l’utilisateur et il est important que le dossier home ai le nom de son détenteur.

Les paramètres laissés sur inherit sont repris sur le dataset parent : on laisse par défaut ici comme cela convient mais vous pourriez choisir un niveau de compression différent par exemple.

Le Share type est laissé sur UNIX, cela est dépendant du partage que vous allez attribuer à ce dataset : pour du CIFS, on peut mettre Windows, ce qui permet d’améliorer la prise en charge des ACLs pour gérer les droits mais je trouve cela trop complexe pour un usage à domicile. Je prends donc le parti de mettre UNIX pour tous mes datasets. Il s’agit là d’un choix personnel et non d’une règle, libre à vous de tester et faire comme bon vous semble.

Point intéressant : on clique sur Advanced Mode, cela fait apparaître les champs permettant de définir les quotas et réservation d’espace. Le quota permet de limiter l’espace maximum que pourra occuper le dataset. Le même réglage est possible pour le dataset et tous ses “enfants” (sous-datasets). 0 signifie : pas de quota. Mais vous pouvez indiquer par exemple 20G ou 1T pour autoriser 20Go ou 1To maximum. Le quota est simplement une limite, vous pouvez mettre 2 dataset avec 800Go de quota sur un pool de 1To.

La réservation d’espace va non seulement fixer la limite mais carrément réserver l’espace : vous pouvez mettre une réservation de 500Go et stocker seulement 100Go dans un dataset : celui ci prendra quand même 500Go d’espace sur le pool.

Quota et réservation d'espace

Quota et réservation d’espace

Ici on donne un quota de 200Go maximum à Pierre, sans faire de réservation. Un clic sur le bouton Add dataset et celui ci est créé.

De la même façon, on créé les datasets Paul, Jacques, Medias et Public :

Liste des datasets créés

Liste des datasets créés

Création des groupes

Nous allons commencer pour plus de facilité par la suite, par créer les groupes puis nous ajouterons les utilisateurs dedans lors de la création de ces derniers.

Les groupes vont permettre de gérer finement les accès utilisateurs conformément au schéma établi plus haut. Ainsi on va créer un groupe « GrpMedias » dans lequel on mettra Pierre et Paul et qui sera propriétaire du dataset Medias. Un autre groupe appelé « TousUtilisateurs » regroupera nos 3 compères et ce groupe sera propriétaire du dataset Public. Le schémas suivant résume les propriétaires de chaque dataset :

Groupes et propriétés

Groupes et propriétés

Créer un groupe est très simple : on se rend dans Account -> Groups -> Add Group et on a simplement à remplir le nom du groupe sans se préoccuper du reste :

Création d'un groupe

Création d’un groupe

L’opération est répétée pour le groupe TousUtilisateurs.

Création des utilisateurs

Nous allons maintenant nous rendre dans Account -> Users -> Add User pour créer nos utilisateurs :

Création d'un utilisateur 1/2

Création d’un utilisateur 1/2

Création d'un utilisateur 2/2

Création d’un utilisateur 2/2

Donc on remplit le nom d’utilisateur, on laisse coché Create a new primary group for the user, qui va créer un groupe du même nom que notre utilisateur et l’ajoutera dedans. Ici on créé donc un groupe Pierre en même temps que l’utilisateur Pierre et Pierre est seul membre de ce groupe. Point important on sélectionne le dataset « Pierre » comme Home Directory.

Puis viennent nom complet, adresse mail, mot de passe qui se passent de commentaires.

Enfin dans Auxiliary groups on sélectionne pour Pierre « GrpMedias » et « TousUtilisateurs » et on ajoute Pierre dedans par un clic sur >> qui fait passer les groupes dans la liste selected. Cette opération peut aussi se faire après coup dans Account -> Groups -> View Groups en sélectionnant le groupe à modifier et en cliquant sur le bouton Members.

On reproduit l’opération pour Paul et Jacques, sachant que ce dernier est ajouté uniquement dans le groupe « TousUtilisateurs ».

 

Attribution des permissions

Nous avons à présent nos datasets, nos utilisateurs et nos groupes, il ne reste qu’à les lier ensemble et à paramétrer les accès. On veut donc que chaque utilisateur ai accès à son dataset mais pas à celui des autres et que Pierre et Paul puissent lire et écrire dans Medias mais pas Jacques et enfin que tous puissent lire et écrire dans Public.

On se rend dans Storage -> View Volumes et on sélectionne le dataset Pierre puis on clique en bas sur le bouton Change Permissions (le premier de la ligne) :

Attention ! Je rappelle que la connaissance de la gestion des permissions unix est nécessaire pour bien comprendre cette partie.

Modification des permissions Pierre

Modification des permissions Pierre

Les propriétaires utilisateurs et groupes ont été automatiquement définis à Pierre (utilisateur) et Pierre (groupe) car le dataset est le dossier home de Pierre. Nous décochons les cases Read et Write de Other pour n’autoriser un accès qu’au propriétaire. Ici les droits du groupe n’ont pas d’importance puisque Pierre est seul membre de son groupe éponyme.

Un clic sur Change valide les changements effectués. On procède de la même façon pour Paul et Jacques.

Concernant le dataset Medias, c’est un peu différent :

Permissions du dataset Medias

Permissions du dataset Medias

Pour celui ci, il n’y a pas vraiment de propriétaire utilisateur car c’est un dataset que l’on va partager, on choisi donc ici un propriétaire nobody, et bien sur notre groupe GrpMedias comme groupe à qui appartient le dataset. On  coche toutes les permissions pour le groupe et décoche celles des autres utilisateurs.

Pour le dossier Public enfin :

Permission du dataset Public

Permission du dataset Public

Cette fois on considère (par exemple) que les données sont destinées à être partagée donc on coche Read et Execute pour les autres utilisateurs, pour l’instant il n’y en a pas d’autres mais on verra plus tard comment faire un partage sans authentification de sorte que n’importe qui se connecte sur le réseau puisse y accéder.

Nous voici maintenant avec un NAS bien organisé, la prochaine étape est de créer des partages afin que les machines des utilisateurs puissent avoir accès à ces espaces de stockage.

NOTE : Tous les paramétrages abordés ici ne sont que des exemples permettant de comprendre le système, il est impossible de trouver une configuration convenant à tout le monde donc libre à vous de l’adapter ensuite à votre propre usage.

La suite ici : Tuto FreeNAS 9.3 : Ajout de partages pour Windows


Vous avez aimé ? N'hésitez pas à partager :
Facebook Twitter Google+ Mail

16 réflexions au sujet de « Tuto FreeNAS 9.3 : Utilisateurs, datasets et permissions »

  1. Tout d’abord bravo pour tes tutos ! En effet c’est grâce a toi que j’ai commencer il y a 6 mois a m’amuser avec freenas ! Et j’adore ca, tes tutos sont clair et compréhensible de tous si on y met du siens 🙂 !

    Maintenant peut etre une petit colle pour toi, j’ai vu que ut proposais de creer un utilisateur avec ses propre compte de session pour eviter d’utiliser d’autre logi -GENIAL, enfin je vais plus avoir a ******* avec ca 😀 !- mais quand je tente de le faire le caractère « @ » n’est pas prise en compte… Je suis sous windows 8.1 et donc mon nom d’utilisateur est « …..@live.com », je peut abandonner l’idée ou as tu une astuce ? 😀

    Encore merci pour tout !

  2. Bonjour et félicitations pour les tutos, bien présentés et bien rédigés.
    Sans ce formidable guide, jamais je n’aurais entrepris à plus de 70 ans de me lancer dans une réalisation de « Cloud » privé au service de la famille qui est dispersée.
    La motivation est là et pour l’instant je suis en phase d’apprentissage sur un vieux Dell XPS420 puissant mais encombrant. J’envisage par la suite investir dans une config adaptée :
    — Boîtier : http://www.modding.fr/?p=6565
    — Carte mère : http://www.asus.com/fr/Motherboards/H87IPLUS/
    — Alimentation : http://www.ldlc.com/fiche/PB00136131.html
    — Mémoire : http://www.amazon.fr/dp/B007PNNTY4/ref=as_li_ss_tl?ie=UTF8&tag=tonymacx8607-21
    — Processeur : http://www.ldlc.com/fiche/PB00159751.html
    — Refroidissement processeur : http://www.amazon.fr/NH-U12P-SE2-refroidissement-LGA1366-ventilateur/dp/B002TG3K14#productDetails.
    Je pense que cette configuration sera puissante et silencieuse avec un RAID de 5 x 2To.
    Bien merci encore pour ce « cours » formidablement fait.

    1. De rien ! Merci pour les compliments. Bon apprentissage, n’hésite pas à expérimenter au maximum avant de te lancer vraiment, c’est comme ça qu’on apprend le plus sans risque.

  3. Salut et merci pour ce tuto.
    J’utilise Freenas depuis la version 7, jusqu’a maintenant je me suis toujours débrouillé en « bricolant » un peu… aujourd’hui je suis bloqué, et j’ai besoin de votre aide.
    Je suis sous mac exclusivement, donc j’aimerai créer un partage afp. Le problème viens de mes compte utilisateur et de mes dataset. J’aimerais avoir 2 Compte d’accès à mon NAS : Moi et Public, où Moi ayant un accès total et Public un accès juste en lecture, sachant que Public doit être accédé par plusieurs utilisateurs en mêmes temps.
    Quel serai selon vous les dataset et utilisateur ideal ???
    Merci d’avance.
    Cordialement
    Julien

    1. Un utilisateur Moi et un groupe Public.
      Propriétaires Moi:Public et Permissions 750 sur le dataset à partager.
      Les utilisateurs devant avoir accès en lecture seule doivent appartenir au groupe Public.

  4. Bonjour,

    Tout d’abord merci pour ce tuto fort pratique. Il est difficile de trouver de la documentation en français sur Freenas.
    J’aurais une petite question : pourquoi crées-tu des groupes de même nom que les utilisateurs ? Autrement dit, pourquoi créer un groupe « Pierre » qui contient l’utilisateur « Pierre » alors qu’on pourrait le mettre directement dans le groupe « Grpmédia ». J’ai la sensation qu’il y a une raison profonde et critique derrière cela mais je n’arrive pas à me l’expliquer.

    Cordialement,

    Max

    1. Bonjour Max,

      Les groupes de même nom sont créés en même temps que les utilisateurs, c’est classique sur un système UNIX et ça permet de s’y retrouver facilement pour des données privées. Par exemple les données privées de Pierre aurons comme propriétaire Pierre:Pierre en 7×0, du coup quels que soit les droits du groupe (c’est pour ça que j’ai mis « x ») personne d’autre n’y a accès.
      Alors que si tu mets Pierre:GrpMedia pour des données privées il faut absolument 700 du coup.

  5. Merci pour le tuto. Question « simple »… je pense passer d’un serveur freenas 9.1 à 9.3. Pour une raison obscure, je ne peux installer de plugins.
    En gros, j’ai 2 disques en raid sur mon poste qui est en freenas 9.1, et 3 utilisateurs, chaque utilisateur a ses propres dossiers. Les disques sont formatés en UFS.
    Le système 9.1 est installé sur une clef USB de 8go.
    J’ai installé 9.3 sur une autre clef USB de 16Go, sur un autre poste
    Est-ce possible d’utiliser les disques durs de la machine 9.1, sur la machine 9.3, en recréant les mêmes utilisateurs/groupes ? Le tout sans modifier les droits sur le disque dur de façon récursive ?
    Est-ce aussi possible de sauvegarder la configuration du poste 9.1, et l’importer sur la 9.3 ?
    Merci !
    -Mart

    1. Salut, importer la conf de 9.1 vers 9.3 est normalement faisable. Attention, l’UFS est en voie de disparition. A ta place je prendrais une nouvelle clé USB pour essayer la 9.3 et en cas de souci tu peux revenir facilement en 9.1 en remettant simplement l’ancienne clé.

  6. Bonjour Mickaël,
    Permets moi de t’adresser un grand merci pour tes tutos très complets qui m’ont permis de découvrir FreeNAS et de bidouiller depuis la version 9.2
    J’aurais une petite remarque/question concernant le tuto ci-dessus, et plus particulièrement l’attribution de l’utilisateur « nobody » en owner du dossier « Medias ».
    Je souhaite avoir un Dataset « Videos » dans lequel mes utilisateurs enregistrés puissent déposer des films ou créer des dossiers. Ce Dataset doit aussi être accessible aux Guest mais ces derniers ne doivent pas faire autre chose que lire les films.
    J’ai donc suivi ta méthode, owner : « Nobody » / Permission « Read & Execute » (mais pas Write). J’ai configuré mon partage CIFS en cochant « Allow Guest » et tout fonctionne, sauf que… sur mon Mac, les guests peuvent ajouter des dossiers, supprimer etc…
    J’ai alors fait un test en changeant le owner « Nobody » en « Root » et la ça fonctionne correctement.
    En fait je me demande si les Guest ne sont pas considérés comme des Nobody par FreeNAS, ils se retrouvent donc Owner des dossiers au lieu d’avoir un accès restreint.
    Je serais intéressé d’avoir ton avis sur la question.
    Bien à toi,
    Greg

    1. Salut Greg, en effet tu as vu juste, le groupe utilisé par les guests se règle dans la configuration du service CIFS et il est par défaut sur… « nobody ». Ce qui fait que comme tu le dit les guests se retrouvent propriétaires donc ça ne va pas.
      Tu peux donc créer un nouvel utilisateur et groupe « guest » par exemple et régler celui ci comme groupe à utiliser pour les Guests CIFS.
      Ainsi ton dossier Video reste en nobody:Utilisateurs 775, tes utilisateurs ont l’accès total et les guests ont des droits du groupe guest, donc Other dans le cas présent donc lecture seule.

  7. Bonjour,
    merci pour ce tuto bien pratique mais j’ai un problème de permissions, quand je clique sur l’icône Freenas je rentre directement et ne me demande pas de user ni de mot de passe , je vois donc mes répertoires partagés et quand je clique dessus il indique que je n’ai pas d’autorisation sans me demander de user ni de mot de passe? Quelqu’un saurait ‘il pourquoi ? Merci.

  8. Bonjour,

    Merci pour tous ces excellent tutos que tu tiens à jour 😉

    Moi je voudrais savoir pourquoi on est obligé de mettre un « Home directory In » du nom de l’utilisateur depuis FreeNas 9.2? Peut on passer outre?

    Je me suis servit de tes tutos pour monter mon NAS 9.1 et a l’époque je mettait simplement la racine du stockage rien de plus.

    Maintenant j’ai plein de pb avec l’accés ftp à distance ^^

  9. Bonjour , d’abord comment ca va , ensuite j’installe le freenas 9.3 ,mon but faire 20 utilisateur avec de partage de dossier authentifier (login +mot de passe ) , chaque utilisateur peut conecter sur ledossier partager par exemple :
    user : alien —>>> login : alien pwd : 123456789 ,dossier partager : alien2015 .

    =======> le problèmes lorsque crrée plusieurs de dossier et utilisateurs , : lorsque on cennetcer par exemple a alien le primaire fois apres il connecter directe sans mot de passe
    svp aide moi

  10. bonjour,

    j’ai réussi a configurer freenas mais lorsque j’ai tout quitter et que j’ai voulu me reconnecter, il se trouve que je n’ai pas de username donc je suis bloqué pour me connecter.
    comment procéder pour récupérer mon accés?

    merci d’avance

Laisser un commentaire

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