39,881
edits
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 == | ||
<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? 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 à mon 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 : | ||
* <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 113: | Line 114: | ||
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> | |||
To allow a single person with username <tt>smithj</tt> to have read and execute permission on the file <tt>my_script.py</tt>, use: | |||
{{Command|setfacl -m u:smithj:rx my_script.py}} | |||
To allow read and write access to everything within a certain directory (for example ''/home/smithj/projects/def-smithj/shared_data'') for particular group (for example ''wg-datasharing''), use the following command: | |||
{{Command|setfacl -m g:wg-datasharing:rwx /home/smithj/projects/def-smithj/shared_data}} | |||
In order for this method to work the following things need to be in place: | |||
# Group <code>wg-datasharing</code> (or any other name you prefer) must be created in CCDB and you must be assigned ownership of this group. This allows you to add or remove members of the group in [[https://ccdb.computecanada.ca CCDB]]. | |||
# The directory, <code>/home/smithj/projects/def-smithj/shared_data</code> in our example, must be owned by you. | |||
# Since the data sharing group (<code>wg-datasharing</code> in this example) is not necessarily the owner of the directory you would like to share (<code>shared_data</code> in this example), all parent directories in its path should allow public entry, that is, execute permission. They do not need to have public read permission, unless you decide to allow it. | |||
How does you achieve these three requirements? | |||
* 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. | |||
* 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: | |||
[[File:Cc services screen.png|1036px|Services screen displaying groups you can manage]] | |||
* Clicking on the group's name, enter the group management screen: | |||
[[File:Cc service management screen.png|1036px|Services screen showing group's owner]] | |||
* Add member (Victor Van Doom with CCI vdv-888, for example) to the group as a member: | |||
[[File:Cc service add member success screen.png|1036px|Services screen showing members of the group]] | |||
* Make sure that <code>/home/smithj/projects/def-smithj</code> can be traversed by anyone, that is, ensure it has execute permission turned on: | |||
{{Command|chmod -R o+X /home/smithj/projects/def-smithj}} | |||
* Add the new group to the access control list (ACL) for the directory: | |||
{{Command|setfacl -m g:wg-datasharing:rwx /home/smithj/projects/def-smithj/shared_data}} | |||
'''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. |