Comment configurer les droits d'accès associés à vos données ?

Cette page détaille les procédures à suivre pour configurer les droits d'accès associés à vos données.

Nous vous demandons de veiller à appliquer l'une des trois configurations suivantes en fonction de vos besoins de partage. Des contrôles automatisés avec suppression des droits trop permissifs pour other ont été mis en place.

  • Configuration A : Vous n'avez pas besoin de rendre vos données accessibles à d'autres utilisateurs.
  • Configuration B : Vous avez besoin de rendre des données accessibles à des utilisateurs qui font partie de votre groupe Unix.
  • Configuration C : Vous avez besoin de rendre des données accessibles à des utilisateurs qui ne font pas partie de votre groupe Unix.

Avant d'appliquer l'une des trois configurations, nous vous invitons à vérifier que vous respectez bien la recommandation générale décrite dans le paragraphe ci-dessous.

Recommandation générale

Vous devez restreindre au maximum les droits d'accès à vos différents espaces définis sur les serveurs de l'IDRIS (HOME, WORKDIR, ARCHIVE).

Sauf raison contraire, seul le propriétaire des répertoires doit y avoir accès. Il convient donc si besoin de positionner les droits Unix comme indiqué ci-après via la commande chmod :

$ chmod 700 $HOME
$ ls -ld $HOME
drwx------ 10 login grp   8192 May 17 18:10 /chemin/vers/votre/home

$ chmod 700 $WORKDIR
$ ls -ld $WORKDIR
drwx------ 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir

$ chmod 700 $ARCHIVE
$ ls -ld $ARCHIVE
drwx------ 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/archive

Remarque : Cette recommandation de sécurité est d'autant plus importante pour les répertoires HOME et ARCHIVE (lequel correspond au HOME de la machine d'archive) qu'ils sont particulièrement sensibles du fait qu'ils peuvent contenir des fichiers d'environnement et des informations liées aux identifiants. Par conséquent, il est fortement déconseillé de les ouvrir à d'autres utilisateurs.

Configuration A : vous ne souhaitez pas rendre vos données accessibles à d'autres utilisateurs.

La recommandation générale est suffisante. Pensez à vérifier régulièrement les accès positionnés sur chacun de vos espaces.

Configuration B : vous souhaitez rendre des données accessibles à des utilisateurs qui font partie de votre groupe Unix.

Pour le partage de fichiers avec les membres de votre groupe Unix, nous vous recommandons d'utiliser le répertoire partagé COMMONDIR qui vous évite d'ouvrir les accès à vos HOME et WORKDIR.

Si vous souhaitez rendre vos données accessibles uniquement en lecture aux utilisateurs de votre groupe, il faut créer un sous-répertoire de partage dans le COMMONDIR avec les permissions 750. Dans l'exemple suivant, le sous-répertoire de partage est nommé Shared_Dir :

$ mkdir -m 750 $COMMONDIR/Shared_Dir
$ ls -ld $COMMONDIR/Shared_Dir
drwxr-x--- 10 login grp   8192 May 17 18:10 /chemin/vers/votre/commondir/Shared_Dir

Si vous souhaitez rendre vos données accessibles en lecture-écriture aux utilisateurs de votre groupe, il faut créer un sous-répertoire de partage avec les permissions 770 :

$ mkdir -m 770 $COMMONDIR/Shared_Dir
$ ls -ld $COMMONDIR/Shared_Dir
drwxrwx--- 10 login grp   8192 May 17 18:10 /chemin/vers/votre/commondir/Shared_Dir

Configuration C : vous souhaitez rendre des données accessibles à des utilisateurs qui ne font pas partie de votre groupe.

Le partage de données entre les membres de divers projets scientifiques (divers groupes Unix) est parfois une nécessité. Il est alors plus simple de permettre les accès aux données à tous ceux qui en ont besoin plutôt que de dupliquer ces données en raison des problèmes de volumétrie et de cohérence que cela implique. Ce type de partage de données nécessite donc d'ouvrir les droits d'accès sur un ou des répertoires mais il faut veiller à ne pas être trop permissif.

Par conséquent, nous vous recommandons d'enregistrer les données à partager dans un sous-répertoire de votre espace HOME, WORKDIR ou ARCHIVE. Sur ce sous-répertoire et toute l'arborescence qu'il contient, vous positionnerez des droits d'accès Unix traditionnels qui dépendront du type d'accès voulus (lecture, écriture ou lecture et écriture). Vous positionnerez ensuite des droits d'accès de type ACL (Access Control List) sur le répertoire principal concerné (HOME, WORKDIR ou ARCHIVE) via la commande IDRIS ''idracl'' (pour information, tapez idracl sur la machine). En procédant ainsi, vous pouvez contrôler finement l'accès à votre répertoire principal et vous assurer qu'il n'est accessible qu'à des utilisateurs et groupes ayant besoin d'accéder à votre sous-répertoire de partage. Finalement, pensez à restreindre les droits d'accès Unix de tous les fichiers et répertoires que vous ne voulez pas partager mais qui pourraient l'être en raison des droits ACL positionnés. Ne pas oublier les fichiers et répertoires dits “cachés” (surtout pour le HOME) dont le nom commence par un . et que l'on peut lister avec l'option -a de la commande ls. Pour vous assurez de restreindre les accès à tous les fichiers/répertoires cachés de votre HOME, vous pouvez utiliser la commande chmod go-rwx $HOME/.*[!.] (Le filtre .*[!.] permet d'exclure le répertoire .. qui est le répertoire père de votre $HOME).

Exemple de partage de données via un sous-répertoire nommé Shared_Dir situé dans le WORKDIR. Les données sont rendues accessibles à tous les membres d'un groupe Unix (ici grp2) différent de celui du propriétaire (ici grp) :

  1. Création du sous-répertoire Shared_Dir. Notez que les droits d'accès sur ce sous-répertoire dépendent initialement de la valeur de votre umask.
    $ ls -ld $WORKDIR
    drwx------ 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir
    $ mkdir $WORKDIR/Shared_Dir
    $ ls -ld $WORKDIR/Shared_Dir
    drwx------ 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir/Shared_Dir
  2. Positionnement des droits d'accès Unix sur le sous-répertoire Shared_Dir (pensez aussi à vérifier les droits Unix de toute l'arborescence du répertoire)
    1. Si les données doivent être accessibles en lecture et en écriture :
      $ chmod 777 $WORKDIR/Shared_Dir
      $ ls -ld $WORKDIR/Shared_Dir
      drwxrwxrwx 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir/Shared_Dir
    2. Si les données doivent être accessibles en lecture uniquement :
      $ chmod 755 $WORKDIR/Shared_Dir
      $ ls -ld $WORKDIR/Shared_Dir
      drwxr-xr-x 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir/Shared_Dir
  3. Ajout des droits ACL sur le WORKDIR pour en autoriser l'accès aux membres du groupe Unix grp2 via la commande IDRIS ''idracl'' (pour information, tapez idracl). Notez que, lorsque des droits ACL sont positionnés, la commande ls -ld ne retourne pas nécessairement les droits d'accès effectifs du répertoire (ci-dessous, les droits r-w indiqués sont pour le groupe grp2 et non pour le groupe grp du propriétaire) et elle affiche alors un signe + juste après les droits d'accès :
    $ idracl -w -a -g grp2 
    $ idracl -w -l
    Liste des logins et groupes autorises a acceder 
     a mon espace /chemin/vers/votre/workdir
    ===============================================
     logins autorises : 
     groupes autorises : grp2
    
    $ ls -ld $WORKDIR
    drwxr-x---+ 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir
  4. Avec les droits ACL sur le WORKDIR, certains fichiers (comme private_file ici) et certains répertoires (comme Private_Dir ici) se retrouvent accessibles aux membres du groupe grp2. Ceci n'étant pas nécessairement voulu, il convient de restreindre leurs droits d'accès Unix :
    $ ls -al $WORKDIR
    drwxr-x---+ 66 login grp 131072 Jul  6 14:45 .
    drwxr-xr-x  27 root  grp 131072 Jun  2 09:06 ..
    ...
    -rw-rw-rw-  19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir/private_file
    drwxrwxrwx  19 login grp   3072 Nov 16  2015 /chemin/vers/votre/workdir/Private_Dir
    drwxrwxrwx  19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir/Shared_Dir
    
    $ chmod go-rwx /chemin/vers/votre/workdir/Private_Dir
    $ chmod go-rwx /chemin/vers/votre/workdir/private_file
    
    $ ls -al $WORKDIR
    drwxr-x---+ 66 login grp 131072 Jul  6 14:45 .
    drwxr-xr-x  27 root  grp 131072 Jun  2 09:06 ..
    ...
    -rw-------  19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir/private_file
    drwx------  19 login grp   3072 Nov 16  2015 /chemin/vers/votre/workdir/Private_Dir
    drwxrwxrwx  19 login grp 131072 Nov 16  2015 /chemin/vers/votre/workdir/Shared_Dir

Vous pouvez également partager des données avec des utilisateurs appartenant à un autre groupe unix via un sous-répertoire de l'espace COMMONDIR. Comme vous n'avez pas la possibilité de positionner des droits ACL sur le COMMONDIR qui appartient à un utilisateur générique, il faut obligatoirement utiliser un sous-répertoire pour faire le partage de données :

$ ls -ld $COMMONDIR
drwxrwx--x 46 login_generique grp 131072 Feb  8 15:50 /chemin/vers/votre/commondir

Notez que nous avons ajouté le droit Unix –x dans le champs other pour que tous les utilisateurs puissent traverser votre COMMONDIR. Ceci ne leurs donne pas accès à votre COMMONDIR lui-même. Par contre, ils peuvent accéder à tous les fichiers et sous-répertoires contenus dans le COMMONDIR qui ont des droits d'accès Unix trop permissifs. Il faut donc restreindre les droits d'accès Unix de tous vos fichiers et sous-répertoires (via la commande chmod o-rwx *) du COMMONDIR. Pour partager des données, il vous suffit de positionner des droits ACL sur le(s) sous-répertoire(s) contenant ces données via la commande IDRIS ''idracl'' (pour information, tapez idracl).

Exemple de partage de données via un sous-répertoire nommé Shared_Dir appartenant à login_owner et situé dans le COMMONDIR. Les données sont rendues accessibles à tous les membres d'un groupe Unix (ici grp2) différent de celui du propriétaire (ici grp) :

  1. Création du sous-répertoire Shared_Dir. Notez que les droits d'accès sur ce sous-répertoire dépendent initialement de la valeur de votre umask.
    login_owner $ ls -ld $COMMONDIR
    drwxrwx--x 46 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner
    login_owner $ mkdir $COMMONDIR/Shared_Dir
    login_owner $ ls -ld $COMMONDIR/Shared_Dir
    drwxr-x--- 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir
  2. Positionnement des droits d'accès ACL sur le sous-répertoire Shared_Dir (pensez aussi à vérifier les droits Unix de toute l'arborescence du sous-répertoire) :
    login_owner $ idracl -a -c Shared_dir -g grp2
    login_owner $ idracl -l -c Shared_dir
     
    Liste des logins et groupes autorises a acceder 
    a mon COMMONDIR Ergon (/chemin/vers/commondir_owner/Shared_Dir)
    ===============================================
     logins autorises  : 
     groupes autorises : grp2
    
    login_owner $ ls -ld $COMMONDIR/Shared_Dir
    drwxr-x---+ 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir
    login_owner $ ls -l $COMMONDIR/Shared_Dir
    drwxr-x--- 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_Sub_Dir
    -rw-rw---- 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_File
    1. Si les données doivent être accessibles en lecture et en écriture :
      login_owner $ chmod 777 $COMMONDIR/Shared_Dir/Shared_Sub_Dir
      login_owner $ chmod 666 $COMMONDIR/Shared_Dir/Shared_File
      login_owner $ ls -l $COMMONDIR/Shared_Dir
      drwxrwxrwx 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_Sub_Dir
      -rw-rw-rw- 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_File
    2. Si les données doivent être accessibles en lecture uniquement :
      login_owner $ chmod 755 $COMMONDIR/Shared_Dir/Shared_Sub_Dir
      login_owner $ chmod 644 $COMMONDIR/Shared_Dir/Shared_File
      login_owner $ ls -l $COMMONDIR/Shared_Dir
      drwxr-xr-x 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_Sub_Dir
      -rw-r--r-- 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_File

Suite à cette procédure, un login login_grp2 appartenant au groupe Unix grp2 peut accéder au répertoire partagé Shared_Dir sans pouvoir accéder au contenu du COMMONDIR de login_owner. Notez que login_grp2 doit spécifier le chemin complet /chemin/vers/commondir_owner/Shared_Dir et ne peut pas utiliser sa variable COMMONDIR ($COMMONDIR/Shared_Dir) pour accéder au répertoire :

login_grp2 $ ls -l /chemin/vers/commondir_owner
ls: cannot open directory /chemin/vers/commondir_owner: Permission denied

login_grp2 $ ls -l /chemin/vers/le/commondir_owner/Shared_Dir
drwxr-xr-x 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_Sub_Dir
-rw-r--r-- 19 login_generique grp 131072 Feb  8 15:50 /chemin/vers/commondir_owner/Shared_Dir/Shared_File