Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:dossier_de_partage [Le 08/02/2014, 20:33]
88.101.167.173 [Alternatives aux groupes : utiliser les «Access Control List»]
tutoriel:dossier_de_partage [Le 05/04/2025, 18:06] (Version actuelle)
krodelabestiole [Postulat] légère reformulation
Ligne 1: Ligne 1:
-{{tag>​tutoriel administration partage}} +{{tag>​tutoriel administration partage ​droits}}
------ +
- +
-<note help>​**Partage local versus partage réseau** \\ +
-Le présent document traite d'une manière de partager un dossier d'un seul ordinateur entre plusieurs utilisateurs de cet ordinateur. Il ne traite pas du partage d'un dossier entre deux ou plusieurs ordinateurs d'un même réseau local. Pour plus d'​informations à propos du partage de dossier sur un réseau local, consultez [[:​partage|le document dédié au partage sur réseau]]. </​note>​+
  
 ====== Comment partager un dossier entre plusieurs utilisateurs d'un même ordinateur ? ====== ====== Comment partager un dossier entre plusieurs utilisateurs d'un même ordinateur ? ======
  
-Dans un environnement multi-utilisateur,​ il est parfois intéressant de disposer d'un dossier auquel tous peuvent accéder. Ainsi, tous les utilisateurs peuvent lire les fichiers contenus dans ce dossier, ainsi qu'y déposer des fichiers à partager avec les autres utilisateurs de l'​ordinateur. Comment parvenir à ce résultat ?+<note help>​**Partage local versus partage réseau**
  
-Le présent document ​vous expose ​une manière de créer ​un dossier ​partagé ​entre plusieurs ​comptes ​d'un même ordinateur.+Le présent document ​traite d'une manière de partager ​un dossier ​d'un seul ordinateur ​entre plusieurs ​utilisateurs de cet ordinateur. Il ne traite pas du partage de données entre plusieurs ordinateurs ​d'un même réseau local. Pour plus d'​informations à propos du partage sur un réseau local, consultez la page dédiée au [[:​partage|partage sur réseau]].</​note>​
  
 +Dans un environnement multi-utilisateur,​ il est parfois intéressant de disposer d'un répertoire auquel tous peuvent accéder. Ainsi, tous les utilisateurs peuvent lire les fichiers contenus dans ce dossier, ainsi qu'y déposer des fichiers à partager avec les autres utilisateurs de l'​ordinateur. Comment parvenir à ce résultat ?
 +
 +Le présent document vous expose une manière de créer un dossier partagé entre plusieurs comptes d'un même ordinateur.
  
 ===== Postulat ===== ===== Postulat =====
Ligne 16: Ligne 15:
 {{  dossierpartage-usersadmin.png?​550}} {{  dossierpartage-usersadmin.png?​550}}
  
-Afin de bien comprendre ​la procédure, nous l'​exposerons ​à l'aide d'un cas pratique. ​Pour ce faire, basons ici le cadre de l'​expérience ​:+Afin d'​expliquer ​la procédure, nous la décrirons ​à l'aide d'un cas pratique. ​Voici les spécifications ​de notre exemple ​:
   * Trois comptes d'​utilisateurs existent dans le système Ubuntu :   * Trois comptes d'​utilisateurs existent dans le système Ubuntu :
-    * John (identifiant du compte : //john//) ; John est [[:sudo|le compte habilité à effectuer des tâches administratives]] +    * John (identifiant du compte : ''​john''​) ; John est le compte habilité à effectuer des [[:sudo|tâches administratives]]. 
-    * Mary (identifiant du compte : //mary//+    * Mary (identifiant du compte : ''​mary''​
-    * Rick (identifiant du compte : //rick//+    * Rick (identifiant du compte : ''​rick''​
-  * Le dossier à partager est// /​home/​Partage/ ​// +  * Le dossier à partager est ''​/​home/​Partage/​''​. 
-  * John et Mary doivent +  * John et Mary doivent ​pouvoir : 
-    * pouvoir ​afficher le contenu du dossier et lire tous les fichiers qu'il contient +    * afficher le contenu du dossier et lire tous les fichiers qu'il contient, 
-    * pouvoir ​y écrire des nouveaux fichiers +    * y écrire des nouveaux fichiers, 
-    * pouvoir ​modifier les fichiers qui sont placés dans ce dossier +    * modifier les fichiers qui sont placés dans ce dossier. 
-  * Rick ne doit pouvoir ni accéder aux fichiers de ce dossier de partage, ni lister le contenu du dossier +  * Rick ne doit pouvoir ni accéder aux fichiers de ce dossier de partage, ni lister le contenu du dossier.
  
 ===== La procédure, sans explication ===== ===== La procédure, sans explication =====
-Afin que cette procédure soit valable pour [[:variante|l'​ensemble des variantes de la distribution Ubuntu]], nous effectuerons toute la procédure en mode console. Cette procédure doit être exécutée depuis le compte de John, puisqu'​il est le seul à pouvoir accomplir des tâches administratives. Toutes les commandes ont été rassemblées en groupes afin de correspondre aux étapes de la description,​ ci-dessous.+ 
 +Afin que cette procédure soit valable pour [[:variantes|l'​ensemble des variantes de la distribution Ubuntu]], nous effectuerons toute la procédure en mode console. Cette procédure doit être exécutée depuis le compte de John, puisqu'​il est le seul à pouvoir accomplir des tâches administratives. Toutes les commandes ont été rassemblées en groupes afin de correspondre aux étapes de la description,​ ci-dessous.
  
 <​code>​john@ordinateur:​~$ sudo -s <​code>​john@ordinateur:​~$ sudo -s
Ligne 42: Ligne 41:
 root@ordinateur:​~#​ mkdir /​home/​Partage root@ordinateur:​~#​ mkdir /​home/​Partage
 root@ordinateur:​~#​ chgrp -R partageurs /​home/​Partage root@ordinateur:​~#​ chgrp -R partageurs /​home/​Partage
-root@ordinateur:​~#​ chmod -R g+rwx,o-rwx /​home/​Partage+root@ordinateur:​~#​ chmod -R g+rwX,o-rwx /​home/​Partage
 root@ordinateur:​~#​ chmod -R g+s /​home/​Partage root@ordinateur:​~#​ chmod -R g+s /​home/​Partage
 root@ordinateur:​~#​ exit root@ordinateur:​~#​ exit
 exit exit
 john@ordinateur:​~$</​code>​ john@ordinateur:​~$</​code>​
-Une fois cette procédure complétée,​ John et Mary doivent se déconnecter de leur session actuelle. Leur appartenance au groupe ​//partageurs// ainsi que leur nouveau masque utilisateur ne sont considérés qu'à la prochaine ouverture de session. +Une fois cette procédure complétée,​ John et Mary doivent se déconnecter de leur session actuelle. Leur appartenance au groupe ​''​partageurs'' ​ainsi que leur nouveau masque utilisateur ne sont considérés qu'à la prochaine ouverture de session.
  
 ===== La procédure, avec explications ===== ===== La procédure, avec explications =====
  
 ==== Création d'un groupe de partage et ajout des utilisateurs concernés au groupe de partage ===== ==== Création d'un groupe de partage et ajout des utilisateurs concernés au groupe de partage =====
-La création d'un groupe de partage, l'​ajout d'​utilisateurs à ce groupe, la modification du masque utilisateur et la création du dossier de partage sont des tâches administratives. Elles doivent être accomplies par le compte système (//root//). Dans la session de l'​utilisateur ​//john//, ouvrons un terminal. Exécutons ensuite la commande suivante, qui nous ouvrira une session en tant que compte système :+ 
 +La création d'un groupe de partage, l'​ajout d'​utilisateurs à ce groupe, la modification du masque utilisateur et la création du dossier de partage sont des tâches administratives. Elles doivent être accomplies par le compte système (''​root''​). Dans la session de l'​utilisateur ​''​john''​, ouvrons un terminal. Exécutons ensuite la commande suivante, qui nous ouvrira une session en tant que compte système :
 <​code>​john@ordinateur:​~$ sudo -s <​code>​john@ordinateur:​~$ sudo -s
 [sudo] password for john:     ​(entrez le mot de passe de John)</​code>​ [sudo] password for john:     ​(entrez le mot de passe de John)</​code>​
  
-La commande ''​addgroup''​ sert à créer un nouveau groupe d'​utilisateurs. Ce groupe d'​utilisateurs nous servira à identifier les utilisateurs habilités à accéder au dossier de partage : ceux qui feront partie de ce groupe y auront accès, alors que ceux qui n'en font pas partie n'y auront pas accès. Créons un groupe appelé ​//partageurs// :+La commande ''​[[man>addgroup]]''​ sert à créer un nouveau groupe d'​utilisateurs. Ce groupe d'​utilisateurs nous servira à identifier les utilisateurs habilités à accéder au dossier de partage : ceux qui feront partie de ce groupe y auront accès, alors que ceux qui n'en font pas partie n'y auront pas accès. Créons un groupe appelé ​''​partageurs'' ​:
 <​code>​root@ordinateur:​~#​ addgroup partageurs</​code>​ <​code>​root@ordinateur:​~#​ addgroup partageurs</​code>​
  
-La commande ''​adduser''​ a deux fonctions : créer un nouveau compte d'​utilisateur ou ajouter un compte d'​utilisateur existant à un groupe d'​utilisateurs existant. Dans le cas de cette procédure, c'est cette deuxième fonction qui nous intéresse. Exécutons une première fois la commande pour ajouter ​//john// au groupe ​//partageurs//. Puis, exécutons la commande une seconde fois pour ajouter ​//mary// au groupe ​//partageurs//.+La commande ''​[[man>adduser]]''​ a deux fonctions : créer un nouveau compte d'​utilisateur ou ajouter un compte d'​utilisateur existant à un groupe d'​utilisateurs existant. Dans le cas de cette procédure, c'est cette deuxième fonction qui nous intéresse. Exécutons une première fois la commande pour ajouter ​''​john'' ​au groupe ​''​partageurs''​. Puis, exécutons la commande une seconde fois pour ajouter ​''​mary'' ​au groupe ​''​partageurs''​.
 <​code>​root@ordinateur:​~#​ adduser john partageurs <​code>​root@ordinateur:​~#​ adduser john partageurs
 root@ordinateur:​~#​ adduser mary partageurs</​code>​ root@ordinateur:​~#​ adduser mary partageurs</​code>​
-Désormais, John et Mary font partie du groupe d'​utilisateurs ​//partageurs//. Rick n'en fait pas partie ; il ne pourra donc pas accéder au dossier de partage.+Désormais, John et Mary font partie du groupe d'​utilisateurs ​''​partageurs''​. Rick n'en fait pas partie ; il ne pourra donc pas accéder au dossier de partage.
  
 ==== Modification du masque utilisateur par défaut ===== ==== Modification du masque utilisateur par défaut =====
-Le //[[wpfr>​umask|masque utilisateur]]// est une propriété qui est utilisée ​par le système Ubuntu ​au moment de la création d'un nouveau fichier ou d'un nouveau dossier. Il sert à attribuer un ensemble de [[:​droits|permissions]] par défaut ​à un fichier ou dossier, au moment ​de sa créationLes permissions attribuées par le masque utilisateur ​par défaut ​d'Ubuntu sont insuffisantes ​pour réaliser ​un dossier de partage comme nous l'entendons ​dans le postulat. Modifions le masque utilisateur par défaut du système ​Ubuntu ​:+ 
 +Le [[wpfr>​umask|masque utilisateur]] ​(**umask**) ​est le paramètre utilisé ​par le système Ubuntu ​pour définir les [[:droits#​les_permissions|permissions]] par défaut ​des nouveaux fichiers et répertoires lors de leurs créations. 
 + 
 +Le umask par défaut ​sur Ubuntu ​est de ''​0022''​. Les fichiers ​sont donc créés avec les droits ''​644''​ (''​%%rw-r--r--%%''​),​ et ''​755'' ​pour les répertoires.((Voir par exemple ​un [[https://​www.heuristic42.com/​tools/​unixperms/​|calculateur umask]].)) Seul l'//​utilisateur//​ propriétaire a les droits en écriture sur les données. 
 + 
 +Le umask peut être défini à différents niveaux (indépendamment pour chaque utilisateur,​ ou pour une session, etc.). Ici, pour tous les utilisateurs,​ il est intéressant de le définir globalement pour tout le système (dans le fichier ''/​etc/​profile''​). 
 + 
 +Avec un umask à ''​0002'',​ on autorise le //groupe// propriétaire à modifier les données (''​g+w''​) : ''​664''​ (''​%%rw-rw-r--%%''​) pour les fichiers et ''​775''​ pour les répertoires. 
 + 
 +Modifions ​donc ainsi le masque utilisateur par défaut du système :
 <​code>​root@ordinateur:​~#​ echo "umask 0002" >> /​etc/​profile</​code>​ <​code>​root@ordinateur:​~#​ echo "umask 0002" >> /​etc/​profile</​code>​
-<​note ​help>Est-ce toujours d'actualité ?<​code>​# The default ​umask is now handled by pam_umask. + 
-# See pam_umask(8) and /etc/login.defs</​code></​note>​+<​note ​warning> 
 +Par cette modification on réduit légèrement le niveau de sécurité global du système (les données créées sont par défaut accessibles en écriture à leur groupe). 
 +Cela n'est probablement pas impactant sur un ordinateur personnel, mais si la machine fournit des services sur Internet par exemple, c'est un élément à considérer. 
 + 
 +Une solution serait par exemple de ne modifier individuellement le umask que de chaque utilisateur prenant part au partage : 
 +<​code>​echo "umask 0002" >> $HOME/.profile</​code>​ 
 +</​note>​ 
 + 
 +Pour plus d'​informations sur le sujet, voir //​[[:​droits#​Droits attribués automatiquement à un fichier]]//​. 
 ==== Création du dossier de partage ===== ==== Création du dossier de partage =====
 +
 Créons le dossier de partage : Créons le dossier de partage :
 <​code>​root@ordinateur:​~#​ mkdir /​home/​Partage</​code>​ <​code>​root@ordinateur:​~#​ mkdir /​home/​Partage</​code>​
  
-Attribuons à ce dossier de partage des droits suffisants pour permettre aux membres du groupe ​//partageurs// d'​accéder à ce dossier. Pour ce faire, modifions le groupe propriétaire du dossier afin que celui-ci soit //partageurs// ; ceci s'​effectue à l'aide de la commande ''​chgrp''​. Puis, attribuons à ce dossier un maximum de permissions aux membres de //partageurs// et aucune permission pour ceux qui ne sont pas membres de //partageurs// ; ceci se réalise avec la commande ''​chmod''​. Nous appliquons ces modifications de manière récursive : les modifications sont aussi appliquées aux possibles fichiers déjà présents dans le dossier.+Attribuons à ce dossier de partage des droits suffisants pour permettre aux membres du groupe ​''​partageurs'' ​d'​accéder à ce dossier. Pour ce faire, modifions le groupe propriétaire du dossier afin que celui-ci soit ''​partageurs'' ​; ceci s'​effectue à l'aide de la commande ''​[[man>chgrp]]''​. Puis, attribuons à ce dossier un maximum de permissions aux membres de ''​partageurs'' ​et aucune permission pour ceux qui ne sont pas membres de ''​partageurs'' ​; ceci se réalise avec la commande ''​[[man>chmod]]''​. Nous appliquons ces modifications de manière récursive : les modifications sont aussi appliquées aux possibles fichiers déjà présents dans le dossier.
 <​code>​root@ordinateur:​~#​ chgrp -R partageurs /​home/​Partage <​code>​root@ordinateur:​~#​ chgrp -R partageurs /​home/​Partage
-root@ordinateur:​~#​ chmod -R g+rwx,o-rwx /​home/​Partage</​code>​ +root@ordinateur:​~#​ chmod -R g+rwX,o-rwx /​home/​Partage</​code>​ 
-<note help>​[[http://​doc.ubuntu-fr.org/​permissions#​en_ligne_de_commande1]] ne vaut-il pas mieux mettre : +Enfin (et c'est là la partie la plus importante de toute cette procédure),​ attribuons le //GID bit// au groupe propriétaire du dossier de partage. Ce mode attribue automatiquement tout fichier créé dans le dossier de partage au groupe propriétaire du dossier de partage (dans notre cas, ''​partageurs''​). Cette action s'​effectue aussi avec la commande ''​[[man>chmod]]''​. Tout comme précédemment,​ nous appliquons la modification récursivement :
-<​code>​root@ordinateur:​~#​ chmod -R g+rwX,o-rwx /​home/​Partage</​code>afin de ne pas rendre tous les fichiers et dossiers éxécutables ?</note+
-Enfin (et c'est là la partie la **plus** importante de toute cette procédure),​ attribuons le //GID bit// au groupe propriétaire du dossier de partage. Ce mode attribue automatiquement tout fichier créé dans le dossier de partage au groupe propriétaire du dossier de partage (dans notre cas, //partageurs//). Cette action s'​effectue aussi avec la commande ''​chmod''​. Tout comme précédemment,​ nous appliquons la modification récursivement :+
 <​code>​root@ordinateur:​~#​ chmod -R g+s /​home/​Partage</​code>​ <​code>​root@ordinateur:​~#​ chmod -R g+s /​home/​Partage</​code>​
  
 +===== Limitation de cette méthode de partage =====
  
-==== Fermeture ​de session ==== +Notez toutefois que cette méthode ​de partage a une limite plutôt dérangeante : les droits suffisants pour le groupe ''​partageurs''​ ne s'​appliquent automatiquement que sur les //nouveaux// fichiers créés dans le dossier ​de partageLes fichiers déplacés dans ce dossier conservent leurs propriétaires ​et leur mode.
-Tous les utilisateurs qui ont rejoint ​le groupe ​d'utilisateurs ​//partageurs// doivent clore toutes leurs sessions en cours. En effet, l'​appartenance à un nouveau groupe d'​utilisateurs et le changement ​de masque utilisateur ne sont pas pris en compte immédiatementCes modifications ne sont prises en compte qu'à l'​ouverture de session suivante. Dans notre cas, John et Mary doivent fermer toutes leurs sessions utilisateurs. Rick ne faisant pas partie des membres habilités à partager des fichiers, il n'a pas besoin de clore puis rouvrir sa session.+
  
-À leur prochaine ouverture ​de session, John et Mary peuvent se servir ​du dossier de partage// /home/Partage/ //pour partager divers fichiersRick n'a pas du tout accès au dossier partagé.+Par exemple : //John//, //Mary// et //Jenny// travaillent tous les trois sur un même projet d'​étude. Ils doivent partager un même document ​de travail''​Observations.odt'',​ et doivent tous être en mesure de le modifier. ​John est la personne qui débute les observations ; il est celui qui crée le document ''​Observations.odt''​ original : 
 +  * S'il crée le document directement dans le dossier de partage, la propriété de groupe est automatiquement attribuée à ''​partageurs''​. Tous les membres du groupe ''​partageurs''​ pourront lire et modifier le document ; 
 +  * S'il crée d'​abord ''​Observations.odt''​ dans son dossier personnel puis le copie dans le dossier de partage, la propriété de groupe est automatiquement attribuée à ''​partageurs''​ pour la copie du document seulement. (La copie de ''​Observations.odt''​ devient alors la copie de travail du groupe.) Tous les membres du groupe ''​partageurs''​ pourront lire et modifier la copie de ''​Observations.odt''​ uniquement ; 
 +  * Si John crée d'​abord ''​Observations.odt''​ dans son dossier personnel puis le déplace dans le dossier de partage, la propriété de groupe originale est //conservée//. Par défaut, les membres ​du groupe ''​partageurs''​ auront ​accès ​en lecture ​au fichier ''​Observations.odt'',​ mais ils //ne// pourront //pas// le modifier.
  
-<note help>​**Comment ajouter un utilisateur au groupe ​de partage ​?** \\ +Si plusieurs documents sont déplacés malencontreusement dans le dossier ​de partage, ​exécutez les deux commandes suivantes, depuis un compte ​d'​administrateurpour leur attribuer des droits suffisants et la propriété de groupe ​au groupe ​d'utilisateurs ​''​partageurs''​ : 
-Un nouvel utilisateurJenny (identifiant du compte ​: //jenny//)est inscrit dans le système Ubuntu. Vous désirez ajouter Jenny au groupe ​de partage auquel font partie John et Mary. Pour ce faire, vous n'avez qu'à répéter l'étape de l'ajout d'un utilisateur au groupe //​partageurs//​ : dans un terminal ouvert sur le compte de John (qui peut effectuer des tâches administratives),​ exécutez la commande suivante ​: <​code>​john@ordinateur:​~$ sudo adduser jenny partageurs</code> Si Jenny a actuellement une session ouverteelle doit la clore puis la rouvrir pour que son appartenance au groupe ​//partageurs//​ prenne effet. +<​code>​john@ordinateur:​~$ sudo chgrp -R partageurs /home/​Partage 
-</note>+john@ordinateur:​~$ sudo chmod -R g+rwX,o-rwx /home/Partage</code>
  
-===== Limitation ​de cette méthode de partage ===== +Prenez l'​habitude ​de créer directement vos nouveaux fichiers ​à partager ​dans le dossier de partage ​ou de les y copier.
-Notez toutefois que cette méthode de partage a une limite plutôt dérangeante : les droits suffisants pour le groupe //​partageurs//​ ne s'​appliquent automatiquement que **sur les nouveaux fichiers ​créés ​dans le dossier de partage**. Les fichiers déplacés dans ce dossier conservent leurs propriétaires et leur mode.+
  
-Par exemple : John, Mary et Jenny travaillent tous les trois sur un même projet d'​étude. Ils doivent partager un même document de travail, ​//Observations.odt//,​ et doivent tous être en mesure de le modifier. John est la personne qui débute ​les observations ; il est celui qui crée le document //​Observations.odt//​ original ​: +//En utilisant ​les [[:ACL]]cette limitation disparaîtvoir section 6-2 ci-dessous.//
-  * S'il crée le document directement dans le dossier de partagela propriété de groupe est automatiquement attribuée à //​partageurs//​. Tous les membres du groupe //​partageurs//​ pourront lire et modifier le document ; +
-  * S'il crée d'​abord //​Observations.odt//​ dans son dossier personnel puis le __copie__ dans le dossier de partagela propriété de groupe est automatiquement attribuée à //​partageurs//​ __pour la copie du document seulement__(La copie de //Observations.odt//​ devient alors la copie de travail du groupe.) Tous les membres du groupe //​partageurs//​ pourront lire et modifier la copie de //​Observations.odt//​ uniquement ; +
-  * Si John crée d'​abord //​Observations.odt//​ dans son dossier personnel puis le __déplace__ dans le dossier de partage, la propriété de groupe originale **est conservée**. Par défaut, les membres du groupe //​partageurs//​ auront accès en lecture au fichier //​Observations.odt//,​ mais ils **ne pourront pas** le modifier.+
  
-Si plusieurs documents sont __déplacés__ malencontreusement dans le dossier de partage, exécutez les deux commandes suivantes, depuis un compte d'​administrateur,​ pour leur attribuer des droits suffisants et la propriété de groupe au groupe d'​utilisateurs //​partageurs//​ : +===== Les contournements possibles =====
-<​code>​john@ordinateur:​~$ sudo chgrp -R partageurs /​home/​Partage +
-john@ordinateur:​~$ sudo chmod -R g+rwx,o-rwx /​home/​Partage</​code>​+
  
-Prenez l'​habitude de créer directement vos nouveaux fichiers à partager dans le dossier de partage ou de les y __copier__.+==== Utiliser bindfs ====
  
-===== Une solution possible: bindfs =====+La commande ''​[[man>​bindfs]]''​ permet de monter un répertoire en imposant les droits. Par exemple pour que tous les fichiers soient en lecture/​écriture pour tous: 
 +<​code>​bindfs ​--perms=o+rw somedir somedir </​code>​ 
 +[[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22831628#​p22831628|Voir un exemple d'​implantation.]]
  
-Le logiciel bindfs permet de monter ​un répertoire en imposant les droits. Par exemple pour que tous les fichiers soient en lecture/​écriture pour tous:+==== Utiliser ​un service système de réparation ====
  
-<​code>​bindfs ​--perms=o+rw somedir somedir ​</​code>​+Dans un ordinateur personnel, un seul utilisateur est connecté à la fois, il suffit de lancer un service de rectification lors de chaque connexion utilisateur. \\ [[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22831427#​p22831427|Voir un exemple d'​implantation.]] 
 + 
 +==== Éviter de créer l'​erreur ==== 
 + 
 +Le mode graphique semble ne pas le permettre. Il faut alors penser à lancer immédiatement la commande permettant le partage. 
 +<​code ​bash>chmod -Rv 774 ObjetCopié</​code>​ 
 +Le plus efficace reste de dupliquer en ligne de commande en utilisant l'​option ''​-no-preserve=mode''​. ​ Exemple <code bash>cp Essai /​media/​Partage/​Docs_communs/​Essai1 
 +cp --no-preserve=mode Essai /​media/​Partage/​Docs_communs/​Essai2 
 +ls -l /​media/​Partage/​Docs_communs/​Essai* 
 +-rwxr--r-- 1 a partageurs 6 avril  3 14:57 /​media/​Partage/​Docs_communs/​Essai1 
 +-rw-rw-r-- 1 a partageurs 6 avril  3 14:57 /​media/​Partage/​Docs_communs/​Essai2</​code>​ 
 + 
 +==== Utiliser les Access Control List ==== 
 + 
 +Voir [[#​utiliser_les_access_control_list1|ci-dessous]] et [[:​tutoriel:​dossier_partage|une autre présentation]] sur le même sujet.
  
 ===== Aller plus loin... ===== ===== Aller plus loin... =====
  
 ==== Créer plusieurs groupes de partage ==== ==== Créer plusieurs groupes de partage ====
 +
 Nouveau postulat : vous êtes un enseignant dans une école élémentaire. Dans votre salle de classe, vous disposez d'un seul ordinateur sous Ubuntu dans lequel chacun de vos 20 élèves a un compte d'​utilisateur. Vous lancez un projet : vous séparez la classe en deux équipes. Chacune des équipes doit monter une revue de presse à propos d'un évènement de l'​actualité,​ qu'​elle exposera ensuite à l'​autre moitié de la classe. Chaque élève traite individuellement d'un aspect de ce projet, mais les membres d'une même équipe mettent en commun le fruit de leur travail. Comme vous ne disposez que d'un seul ordinateur dans la classe, les élèves doivent se partager le temps d'​utilisation du poste. Vous désirez donc que chaque élève ait accès à un dossier partagé avec les membres de son équipe, mais ne puisse accéder aux dossiers des autres équipes. Comment accomplir cela ? Nouveau postulat : vous êtes un enseignant dans une école élémentaire. Dans votre salle de classe, vous disposez d'un seul ordinateur sous Ubuntu dans lequel chacun de vos 20 élèves a un compte d'​utilisateur. Vous lancez un projet : vous séparez la classe en deux équipes. Chacune des équipes doit monter une revue de presse à propos d'un évènement de l'​actualité,​ qu'​elle exposera ensuite à l'​autre moitié de la classe. Chaque élève traite individuellement d'un aspect de ce projet, mais les membres d'une même équipe mettent en commun le fruit de leur travail. Comme vous ne disposez que d'un seul ordinateur dans la classe, les élèves doivent se partager le temps d'​utilisation du poste. Vous désirez donc que chaque élève ait accès à un dossier partagé avec les membres de son équipe, mais ne puisse accéder aux dossiers des autres équipes. Comment accomplir cela ?
  
 Pour ce faire, il suffit de créer plusieurs groupes de partage et plusieurs dossiers de partage. Suivez la procédure ci-dessus, en changeant le nom du groupe de partage et le nom du dossier de partage pour chacune des quatre équipes d'​élèves. Par exemple : Pour ce faire, il suffit de créer plusieurs groupes de partage et plusieurs dossiers de partage. Suivez la procédure ci-dessus, en changeant le nom du groupe de partage et le nom du dossier de partage pour chacune des quatre équipes d'​élèves. Par exemple :
-  * créons un grand dossier ///projet/ //à la racine du système de fichiers. Nous créerons des dossier //projet1/// et //projet2/// dans ce grand dossier ;+  * créons un grand répertoire ''​projet'' ​à la racine du système de fichiers. Nous créerons des répertoires ''​projet1'' ​et ''​projet2'' ​dans ce grand dossier ;
   * créons deux groupes de partage, //equipe1// à //equipe2// ;   * créons deux groupes de partage, //equipe1// à //equipe2// ;
   * insérons les élèves dans les bonnes équipes.   * insérons les élèves dans les bonnes équipes.
Ligne 139: Ligne 169:
  
 root@ordinateurdeclasse:​~#​ chgrp equipe1 /​projet/​projet1 root@ordinateurdeclasse:​~#​ chgrp equipe1 /​projet/​projet1
-root@ordinateurdeclasse:​~#​ chmod g+rwx,o-rwx /​projet/​projet1+root@ordinateurdeclasse:​~#​ chmod g+rwX,o-rwx /​projet/​projet1
 root@ordinateurdeclasse:​~#​ chmod g+s /​projet/​projet1 root@ordinateurdeclasse:​~#​ chmod g+s /​projet/​projet1
  
 root@ordinateurdeclasse:​~#​ chgrp equipe2 /​projet/​projet2 root@ordinateurdeclasse:​~#​ chgrp equipe2 /​projet/​projet2
-root@ordinateurdeclasse:​~#​ chmod g+rwx,o-rwx /​projet/​projet2+root@ordinateurdeclasse:​~#​ chmod g+rwX,o-rwx /​projet/​projet2
 root@ordinateurdeclasse:​~#​ chmod g+s /​projet/​projet2 root@ordinateurdeclasse:​~#​ chmod g+s /​projet/​projet2
  
Ligne 149: Ligne 179:
 exit exit
 enseignant@ordinateurdeclasse:​~$</​code>​ enseignant@ordinateurdeclasse:​~$</​code>​
-Ainsi, Simon et Hélène peuvent mettre en commun leur travail, mais ne peuvent voir ce qu'ont réalisé Romain et Rachida. De même, Romain et Rachida peuvent mettre en commun leur travail, mais n'ont pas accès au projet de Simon et Hélène.+Ainsi, ​//Simon// et //Hélène// peuvent mettre en commun leur travail, mais ne peuvent voir ce qu'ont réalisé ​//Romain// et //Rachida//. De même, ​//Romain// et //Rachida// peuvent mettre en commun leur travail, mais n'ont pas accès au projet de //Simon// et //Hélène//. 
 + 
 +==== utiliser les «Access Control List» ==== 
 + 
 +Les [[:​acl|Access Control List]] permettent une gestion très fine des droits d'​utilisateurs et ne nécessitent pas d'​être ''​root''​. Néanmoins la mise en place peut paraître plus ardue. 
 + 
 +En reprenant l'​exemple cité plus haut, pour une gestion via [[:ACL]] du partage, il suffit de faire : 
 +<​code>​ 
 +john@ordinateur:​~$ sudo -s 
 +[sudo] password for john:     ​(entrez le mot de passe de John) 
 +root@ordinateur:​~#​ addgroup partageurs 
 +root@ordinateur:​~#​ adduser john partageurs 
 +root@ordinateur:​~#​ adduser mary partageurs 
 +root@ordinateur:​~#​ echo "umask 0002" >> /​etc/​profile 
 +root@ordinateur:​~#​ mkdir /​home/​Partage 
 +root@ordinateur:​~#​ chown -R $USER:​partageurs /​home/​Partage 
 +root@ordinateur:​~#​ chmod -R g+srwX,​o-rwx /​home/​Partage 
 +root@ordinateur:​~#​ exit 
 +john@ordinateur:​~$</​code>​ 
 +NOTE : les ''​[[man>​chown]]''​ / ''​[[man>​chmod]]''​ ne sont absolument pas indispensables,​ on peut très bien s'en passer avec les ACL. 
 +Vu que le dossier Partage appartient à l'​utilisateur courant, et en restant dans le contexte énoncé au départ on peut se contenter de faire : 
 +<​code>​setfacl -Rm default:​user:​mary:​rwx,​user:​mary:​rwx home/​Partage/</​code>​ 
 +pour autoriser mary uniquement a faire ce qu'​elle veut dans ce dossier et ses sous dossiers . 
 + 
 +Si on désire mettre à disposition au sein d'un groupe (pour plusieurs utilisateurs donc) on fera une commande de la sorte pour y autoriser le groupe ''​partageurs''​ en lecture écriture exécution : 
 +<​code>​setfacl -Rm default:​group:​users:​rwx,​group:​users:​rwx /​home/​Partage/</​code>​
  
 +Le fait de définir des [[:ACL]] par défaut permet d'​outrepasser la limitation de copie de fichiers, et absolument tout les dossiers et fichiers crées //ou copiés// dans ce répertoire seront accessibles pour ''​mary''​ pour la 1ere commande et pour le groupe ''​users''​ et appartenant tous au groupe ''​users''​ pour le cas de la 2eme commande.
  
-==== Alternatives aux groupes : utiliser les «Access Control List» ==== +lorsqu'​un répertoire ''/''​ est concerné par des [[:ACL]], lorsqu'​on fait un ''​ls''​ dessus, à la fin de l'​énumération ​des permissions il apparaît un ''​+''​ qui indique que des permissions avancées ([[:ACL]]) sont attribuées. 
-Les [[:acl|Access Control List]] permettent une gestion très fine des droits d'utilisateurs et ne nécessitent pas d'être root. Néanmoins la mise en place peut paraître plus ardue.+pour les consulter il faut alors faire : 
 +<​code>​getfacl /home partage</​code>​ 
 +par exemple qui retournera alors quelque chose comme : 
 +<​code>​drwxr-x---+ ​ 2 john john 4096 mars  27 09:12 </​code>​
  
-[[:acl|Page sur les Access Control List]]+Pour plus d'​explications sur les [[:ACL]], consultez la page //[[:​acl|Access Control List : Gestion avancée des droits sous linux]]//.
  • tutoriel/dossier_de_partage.1391887990.txt.gz
  • Dernière modification: Le 08/02/2014, 20:33
  • par 88.101.167.173