40,164
edits
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 2: | Line 2: | ||
<div class="mw-translate-fuzzy"> | |||
Il arrive fréquemment de devoir partager ses données avec un collègue ou avec un autre groupe de recherche. Les systèmes de Calcul Canada offrent tous les moyens pour ce faire. | Il arrive fréquemment de devoir partager ses données avec un collègue ou avec un autre groupe de recherche. Les systèmes de Calcul Canada offrent tous les moyens pour ce faire. | ||
Pour partager vos données avec quelqu'un qui possède un compte sur une grappe, le moyen le plus simple est d'utiliser les permissions de partage offertes par le système de fichiers. Autrement, vous pouvez utiliser les [[Globus/fr#Partage_de_fichiers_avec_Globus | fonctions de partage de point de chute]] dans [[Globus/fr | Globus]], qui permettent en plus de partager vos données avec des personnes qui n'ont pas de compte sur la grappe. | Pour partager vos données avec quelqu'un qui possède un compte sur une grappe, le moyen le plus simple est d'utiliser les permissions de partage offertes par le système de fichiers. Autrement, vous pouvez utiliser les [[Globus/fr#Partage_de_fichiers_avec_Globus | fonctions de partage de point de chute]] dans [[Globus/fr | Globus]], qui permettent en plus de partager vos données avec des personnes qui n'ont pas de compte sur la grappe. | ||
</div> | |||
When sharing a file it's important to realize that the individual you want to share it with must have access to the entire chain of directories leading from <code>/scratch</code> or <code>/project</code> to the directory in which the file is located. If we consider the metaphor of a document locked in a safe in the bedroom of your apartment in a large building, giving me the combination to the safe will not allow me to read this document if I do not also have the necessary keys to enter the apartment building, your apartment and finally your bedroom. In the context of a filesystem, this means having | When sharing a file it's important to realize that the individual you want to share it with must have access to the entire chain of directories leading from <code>/scratch</code> or <code>/project</code> to the directory in which the file is located. If we consider the metaphor of a document locked in a safe in the bedroom of your apartment in a large building, giving me the combination to the safe will not allow me to read this document if I do not also have the necessary keys to enter the apartment building, your apartment and finally your bedroom. In the context of a filesystem, this means having execute permission for each directory between the root (e.g. <code>/scratch</code> or <code>/project</code>) and the directory containing the file. | ||
==Permissions des systèmes de fichiers== | ==Permissions des systèmes de fichiers== | ||
Line 34: | Line 36: | ||
Pour modifier les permissions, utilisez la commande <tt>chmod</tt> avec la notation octale mentionnée plus haut; par exemple, | Pour modifier les permissions, utilisez la commande <tt>chmod</tt> avec la notation octale mentionnée plus haut; par exemple, | ||
{{Commande|chmod 777 name_of_file}} | {{Commande|chmod 777 name_of_file}} | ||
accorde à tous les utilisateurs de la grappe les permissions d'écriture, de lecture et d'exécution. Bien entendu, vous pouvez seulement modifier les permissions associées à un fichier ou à un répertoire dont vous êtes propriétaire. Pour modifier le groupe, utilisez la commande <tt>chgrp</tt>. | accorde à tous les utilisateurs de la grappe les permissions d'écriture, de lecture et d'exécution. Bien entendu, vous pouvez seulement modifier les permissions associées à un fichier ou à un répertoire dont vous êtes propriétaire. Pour modifier le groupe, utilisez la commande <tt>chgrp</tt>. | ||
===The Sticky Bit=== | |||
When dealing with a shared directory where multiple users have read, write and execute permission, as would be common in the [[Project_layout | project space]] for a professor with several active students and collaborators, the issue of ensuring that an individual cannot delete the files or directories of another can arise. For preventing this kind of behaviour the Unix filesystem developed the concept of the [https://en.wikipedia.org/wiki/Sticky_bit sticky bit] by means of which the filesystem permissions for a directory can be restricted so that a file in that directory can only be renamed or deleted by the file's owner or the directory's owner. Without this sticky bit, users with write and execute permission for that directory can rename or delete any files that it may contain even if they are not the file's owner. The sticky bit can be set using the command <code>chmod</code>, for example | |||
{{Command|chmod +t <directory name>}} | |||
or if you prefer to use the octal notation discussed above by using the mode 1000, hence | |||
{{Command|chmod 1774 <directory name>}} | |||
to set the sticky bit and <code>rwxrwxr--</code> permissions on the directory. The sticky bit can be unset by the command | |||
{{Command|chmod -t <directory name>}} | |||
or via octal notation, | |||
{{Command|chmod 0774 <directory name>}} | |||
In the context of the project space the directory owner will the PI who sponsors the roles of the students and collaborators. | |||
== Listes de contrôle d'accès == | == Listes de contrôle d'accès == | ||
<div class="mw-translate-fuzzy"> | |||
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 à mon groupe? Faut-il alors permettre à tous de lire le fichier? 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 à mon groupe? Faut-il alors permettre à tous de lire le fichier? 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 : | ||
* <tt>getfacl</tt> pour connaitre les permissions définies dans la liste | * <tt>getfacl</tt> pour connaitre les permissions définies dans la liste | ||
Line 43: | Line 57: | ||
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 | ||
{{Commande|setfacl -m u:smithj:rx my_script.py}} | {{Commande|setfacl -m u:smithj:rx my_script.py}} | ||
</div> | |||
'''Note :''' <tt>setfacl</tt> et <tt>getfacl</tt> ne fonctionnent par dans /home sur [https://docs.computecanada.ca/wiki/Graham/fr Graham]. Utilisez plutôt les systèmes de fichiers /project ou /scratch. | '''Note :''' <tt>setfacl</tt> et <tt>getfacl</tt> ne fonctionnent par dans /home sur [https://docs.computecanada.ca/wiki/Graham/fr Graham]. Utilisez plutôt les systèmes de fichiers /project ou /scratch. |