Sharing data/fr: Difference between revisions

Jump to navigation Jump to search
Updating to match new version of source page
No edit summary
(Updating to match new version of source page)
Line 108: Line 108:


== Listes de contrôle d'accès ==
== Listes de contrôle d'accès ==
=== Sharing Access with an Individual ===


Les systèmes d'exploitation de type Unix fonctionnent avec ces permissions depuis plusieurs années, mais les possibilités sont limitées. Comme il n'y a que trois catégories d'utilisateurs (propriétaire, groupe, autres), comment permettre la lecture à un utilisateur en particulier qui n'appartient pas à un groupe? Faut-il alors permettre à tous de lire le fichier? Heureusement, la réponse est non, puisque dans de tels cas, les systèmes nationaux de Calcul Canada offrent des listes de règles d'accès (ACLs pour ''access control lists'') par utilisateur. Les deux commandes pour ce faire sont :  
Les systèmes d'exploitation de type Unix fonctionnent avec ces permissions depuis plusieurs années, mais les possibilités sont limitées. Comme il n'y a que trois catégories d'utilisateurs (propriétaire, groupe, autres), comment permettre la lecture à un utilisateur en particulier qui n'appartient pas à un groupe? Faut-il alors permettre à tous de lire le fichier? Heureusement, la réponse est non, puisque dans de tels cas, les systèmes nationaux de Calcul Canada offrent des listes de règles d'accès (ACLs pour ''access control lists'') par utilisateur. Les deux commandes pour ce faire sont :  
Line 113: Line 115:
* <tt>setfacl</tt> pour modifier ces permissions.  
* <tt>setfacl</tt> pour modifier ces permissions.  


<div class="mw-translate-fuzzy">
Par exemple, pour accorder à l'utilisateur <tt>smithj</tt> la permission de lire et exécuter le fichier <tt>my_script.py</tt>, la commande serait
Par exemple, pour accorder à l'utilisateur <tt>smithj</tt> la permission de lire et exécuter le fichier <tt>my_script.py</tt>, la commande serait
<source lang="console">
<source lang="console">
[ someuser@server ]$ setfacl -m u:smithj:rx my_script.py
[ someuser@server ]$ setfacl -m u:smithj:rx my_script.py
</source>
</source>
</div>


==== Sharing a subdirectory ====
<div class="mw-translate-fuzzy">
Pour accorder à un groupe particulier (ici ''wg-datasharing'') la permission de lecture et écriture pour tout le contenu d'un répertoire particulier (''/home/smithj/projects/def-smithj/shared_data''), utilisez les commandes
Pour accorder à un groupe particulier (ici ''wg-datasharing'') la permission de lecture et écriture pour tout le contenu d'un répertoire particulier (''/home/smithj/projects/def-smithj/shared_data''), utilisez les commandes
<source lang="console">
<source lang="console">
Line 129: Line 136:
* vous êtes aussi propriétaire du répertoire (ici, <code>/home/smithj/projects/def-smithj/shared_data</code>),
* vous êtes aussi propriétaire du répertoire (ici, <code>/home/smithj/projects/def-smithj/shared_data</code>),
* puisque le groupe qui partagera les données n'est pas nécessairement le propriétaire du répertoire à partager, tous les répertoires parents sur son chemin doivent permettre un accès public avec la permission ''execute''; la permission publique de lecture n'est pas nécessaire, à moins que vous ne l'accordiez.
* puisque le groupe qui partagera les données n'est pas nécessairement le propriétaire du répertoire à partager, tous les répertoires parents sur son chemin doivent permettre un accès public avec la permission ''execute''; la permission publique de lecture n'est pas nécessaire, à moins que vous ne l'accordiez.
</div>
<source lang="console">
$ setfacl -d -m u:smithj:rwx /home/<user>/projects/def-<PI>/shared_data
$ setfacl -R -m u:smithj:rwx /home/<user>/projects/def-<PI>/shared_data
</source>
The first command sets default access rules to directory <code>/home/<user>/projects/def-<PI>/shared_data</code>, so any file or directory created within it will inherit the same ACL rule. It is required for '''new''' data. The second command sets ACL rules to directory <code>/home/<user>/projects/def-<PI>/shared_data</code> and all its content currently in it. So it is applicable only to '''existing''' data.
In order for this method to work the following things need to be in place:
* The directory, <code>/home/smithj/projects/def-smithj/shared_data</code> in our example, must be owned by you.
* All parent directories of the one you are trying to share should allow public entry (i.e. o+x permissions), or at the least execute ACLs for the person you are trying to share with (i.e. <code>u:smithj:r</code> in this example). They do not need to have public read permission, unless the owner decides to allow it. In practical terms, this means that the project directory (/projects/def-<PI>) must give permission for either everyone, or at least the people you are trying to share your data with, execute permission on the project directory.
=== Data Sharing Groups ===
For more complicated data sharing scenarios (those involving multiple people on multiple clusters), it is also possible to create a '''data sharing group'''. A data sharing group is a special group to which all people with whom certain data is to be shared are added. This group is then given access permissions through ACLs.
You do not need a data sharing group except in specialized sharing circumstances.


<div class="mw-translate-fuzzy">
Pour respecter ces exigences,  
Pour respecter ces exigences,  
<br/>1. Faites parvenir un courriel à [mailto:support@computecanada.ca support@computecanada.ca] pour demander la création du groupe qui partagera les données en spécifiant le nom du groupe et en mentionnant que vous souhaitez en être le propriétaire.
<br/>1. Faites parvenir un courriel à [mailto:support@computecanada.ca support@computecanada.ca] pour demander la création du groupe qui partagera les données en spécifiant le nom du groupe et en mentionnant que vous souhaitez en être le propriétaire.
<br/>2. Lorsque la création du groupe est confirmée, connectez-vous à [https://ccdb.computecanada.ca/services/ ccdb.computecanada.ca/services/ CCDB]  pour faire afficher la page des Services.<br />
<br/>2. Lorsque la création du groupe est confirmée, connectez-vous à [https://ccdb.computecanada.ca/services/ ccdb.computecanada.ca/services/ CCDB]  pour faire afficher la page des Services.<br />
[[File:Cc services screen.png|1036px|La page des Services liste les groupes que vous pouvez gérer.]]
[[File:Cc services screen.png|1036px|La page des Services liste les groupes que vous pouvez gérer.]]
</div>
The steps below describe how to create a data sharing group. In this example it is called <code>wg-datasharing</code>
<br />1. Send email to [mailto:support@computecanada.ca support@computecanada.ca] requesting creation of data sharing group, indicate name of the group you would like to have and that you should be the owner.
<br />2. When you receive confirmation from Compute Canada Support that the group has been created, go to [https://ccdb.computecanada.ca/services/ ccdb.computecanada.ca/services/] and access it:<br />
[[File:Cc services screen.png|1036px|Services screen displaying groups you can manage]]


<br/>3. Cliquez sur le nom du groupe en question pour faire afficher les détails de ce groupe.
<br/>3. Cliquez sur le nom du groupe en question pour faire afficher les détails de ce groupe.
Line 141: Line 174:
[[File:Cc service add member success screen.png|1036px|Les membres du groupe sont affichés.]]<br />
[[File:Cc service add member success screen.png|1036px|Les membres du groupe sont affichés.]]<br />


<div class="mw-translate-fuzzy">
<br/>5. Assurez-vous que <code>/home/smithj/projects/def-smithj</code> possède la permission ''execute''.
<br/>5. Assurez-vous que <code>/home/smithj/projects/def-smithj</code> possède la permission ''execute''.
<source lang="console">
<source lang="console">
Line 150: Line 184:
[ someuser@server ]$ setfacl -d -m g:wg-datasharing:rwx /home/smithj/projects/def-smithj/shared_data
[ someuser@server ]$ setfacl -d -m g:wg-datasharing:rwx /home/smithj/projects/def-smithj/shared_data
[ someuser@server ]$ setfacl -R -m g:wg-datasharing:rwx /home/smithj/projects/def-smithj/shared_data
[ someuser@server ]$ setfacl -R -m g:wg-datasharing:rwx /home/smithj/projects/def-smithj/shared_data
</source>
</div>
Just as with individual user sharing, the parent directories of the data you are trying to share must have execute permissions either for everyone or for the data sharing group. In your project directory, this implies that your PI must give consent as follows (unless you have permission to do this yourself):
<source>
$ chmod  o+X /project/def-<PI>/
</source>
or
<source>
$ setfacl g:wg_datasharing:X /project/def-<PI>/
</source>
Finally, you can add your group to the ACL for the directory you are trying to share. The command parallel those needed to share with an individual:
<source lang="console">
$ setfacl -d -m g:wg-datasharing:rwx /home/<user>/projects/def-<PI>/shared_data
$ setfacl -R -m g:wg-datasharing:rwx /home/<user>/projects/def-<PI>/shared_data
</source>
</source>
39,881

edits

Navigation menu