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 31/12/2009, 14:33]
213.95.41.13
tutoriel:dossier_de_partage [Le 03/04/2016, 01:49] (Version actuelle)
82.249.15.240 [Modification du masque utilisateur par défaut]
Ligne 30: Ligne 30:
  
 ===== 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 41: Ligne 41:
  
 root@ordinateur:​~#​ mkdir /​home/​Partage root@ordinateur:​~#​ mkdir /​home/​Partage
-root@ordinateur:​~#​ chgrp partageurs /​home/​Partage +root@ordinateur:​~#​ chgrp -R partageurs /​home/​Partage 
-root@ordinateur:​~#​ chmod g+rwx,o-rwx /​home/​Partage +root@ordinateur:​~#​ chmod -R g+rwx,o-rwx /​home/​Partage 
-root@ordinateur:​~#​ chmod 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.
-<note tip>​N'​oubliez pas d'​utiliser le mode Récursif -R si le répertoire contient déjà des dossiers et des fichiers: 
  
-<​code>​root@ordinateur:​~#​ chgrp -R partageurs /​home/​Partage 
-root@ordinateur:​~#​ chmod -R g+rwx,o-rwx /​home/​Partage 
-root@ordinateur:​~#​ chmod -R g+s /​home/​Partage</​code></​note>​ 
  
 ===== La procédure, avec explications ===== ===== La procédure, avec explications =====
Ligne 70: Ligne 66:
  
 ==== 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éation. Les 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 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#​les_permissions|permissions]] par défaut à un fichier ou dossier, au moment de sa création. Les 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 : 
-<​code>​root@ordinateur:​~#​ echo "umask 0002" >> /etc/profile</​code>​+<​code>​root@ordinateur:​~#​ echo "umask 0002" >> /root/.bashrc</​code>​ 
 +Complément d'​informations au lien suivant : [[:​droits#​droits_attribues_automatiquement_a_un_fichier|droits attribués automatiquement à un fichier]]
  
 +<​note>​la commande donnée ici n'est pas la même que celle donnée au-dessus :
 +<​code>​root@ordinateur:​~#​ echo "umask 0002" >> /​etc/​profile</​code>​
 +J'ai utilisé la seconde (/​root/​.bashrc),​ ça marche bien chez moi.
 +</​note>​
 ==== 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 ​suffisantes ​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''​ +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. 
-<​code>​root@ordinateur:​~#​ chgrp partageurs /​home/​Partage +<​code>​root@ordinateur:​~#​ chgrp -R partageurs /​home/​Partage 
-root@ordinateur:​~#​ chmod g+rwx,o-rwx /​home/​Partage</​code>​+root@ordinateur:​~#​ chmod -R g+rwx,o-rwx /​home/​Partage</​code>​ 
 +<note help>​[[:​permissions#​en_ligne_de_commande|"​Permissions en ligne de commande"​]] ne vaut-il pas mieux mettre : 
 +<​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>​ 
 +===== Limitation de cette méthode de partage ===== 
 +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.
  
-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 partageCe 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''​ : +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 modifierJohn est la personne qui débute les observations ; il est celui qui crée le document //​Observations.odt//​ original : 
-<​code>​root@ordinateur:​~#​ chmod g+s /home/Partage</code>+  * 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.
  
 +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//​ :
 +<​code>​john@ordinateur:​~$ sudo chgrp -R partageurs /​home/​Partage
 +john@ordinateur:​~$ sudo chmod -R g+rwx,o-rwx /​home/​Partage</​code>​
  
-==== Fermeture de session ==== +Prenez ​l'habitude de créer directement vos nouveaux fichiers ​à partager dans le dossier ​de partage ou de les y __copier__.
-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édiatement. Ces 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 fichiers. Rick n'a pas du tout accès au dossier partagé.+===== Une solution possible: bindfs =====
  
-<note help>​**Comment ajouter ​un utilisateur au groupe de partage ?** \\ +Le logiciel bindfs permet de monter ​un répertoire en imposant les droitsPar exemple ​pour que tous les fichiers soient en lecture/écriture pour tous:
-Un nouvel utilisateur,​ Jenny (identifiant du compte : //jenny//), est inscrit dans le système UbuntuVous 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 ouverte, elle doit la clore puis la rouvrir ​pour que son appartenance au groupe ​//​partageurs//​ prenne effet. +
-</​note>​+
  
 +<​code>​bindfs --perms=o+rw somedir somedir </​code>​
  
 ===== Aller plus loin... ===== ===== Aller plus loin... =====
Ligne 133: Ligne 143:
 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.
 +
 +
 +==== Alternatives aux groupes : 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.
 +
 +[[:acl|Page sur les Access Control List]]
  • tutoriel/dossier_de_partage.1262266419.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)