La commande idracl

Le partage de données entre les membres de 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 alors d'ouvrir les droits d'accès sur un ou des répertoires mais il faut veiller à ne pas être trop permissif pour des raisons de sécurité.

En complétant les droits unix, les droits ACL permettent de contrôler plus finement les accès aux données. Il permettent effectivement d'ouvrir les droits pour un ou plusieurs logins bien définis ainsi que pour un ou divers groupes unix bien identifiés. Cependant, leur utilisation n'est pas toujours évidente notamment pour des utilisateurs non initiés. C'est pourquoi l'IDRIS a développé la commande idracl qui vous permet de facilement ajouter ou supprimer des droits ACL sur vos répertoires HOME, WORKDIR et ARCHIVE ainsi que vos sous-répertoires de COMMONDIR.

Notez que l'usage de cette commande trouve sa pleine justification dans le cadre des règles de sécurité informatique que nous vous recommandons de suivre pour les divers espaces disque définis sur nos machines.

La commande idracl supporte quelques options indiquées par un simple appel de la commande :

$ idracl
 
la commande "idracl" permet de gerer les acces bases sur des ACL 
en mode "r-x" des repertoires :
 /chemin/vers/votre/home  ($HOME) ; le defaut
 /chemin/vers/votre/workdir  ($WORKDIR)
 /chemin/vers/votre/archive  ($ARCHIVE)
 /chemin/vers/votre/commun/<repertoire> ($COMMONDIR)
 
Syntaxe :
 
idracl [ -e | -w | -c repertoire ] { -l | -a | -d | -z } { -u login | -g groupe }
 -e : ergon, actions a effectuer sur /chemin/vers/votre/archive
 -w : work, actions a effectuer sur /chemin/vers/votre/workdir
 -c repertoire : actions a effectuer sur repertoire de l'espace COMMONDIR
 -l : liste les logins et/ou groupes autorises
 -a { -u login | -g groupe } : autorise le login ou le groupe
 -d { -u login | -g groupe } : supprime l'acces pour le login ou le groupe
 -z : supprime tous les acces

Veuillez noter que la commande idracl prend en compte principalement deux types d'options et qu'elles dépendent de la machine sur laquelle vous êtes connecté :

  1. Les options indiquant sur quel espace disque on veut ajouter, retirer ou lister les droits ACL :
    • l'option -e pour l'espace ARCHIVE ; elle n'est définie que pour Adapp qui est la seule à disposer de cet espace.
    • l'option -w pour le WORKDIR ; uniquement sur les machines de calcul.
    • l'option -c repertoire ; désigne un sous-répertoire de l'espace COMMONDIR.
    • sans les options -e, -w et -c repertoire, la commande positionne par défaut les droits ACL sur le HOME.
  2. Les options indiquant l'action à réaliser :
    • l'option -l permet de lister les logins et/ou groupes autorisés à accéder au répertoire.
    • l'option -a { -u login | -g groupe } permet d'ajouter des droits ACL sur un répertoire pour un login ou un groupe donné ; des appels successifs à la commande permettent d'autoriser plusieurs logins et/ou groupes.
    • l'option -d { -u login | -g groupe } permet de supprimer des droits ACL sur un répertoire pour un login ou un groupe donné ; des appels successifs à la commande permettent de supprimer plusieurs logins et/ou groupes.
    • l'option -z permet de supprimer tous les droits ACL d'un répertoire ; l'accès au répertoire est alors contrôlé uniquement par les droits unix.

Remarques :

  1. Les droits ACL positionnés par la commande idracl n'autorisent pas une tiers personne à pouvoir écrire sur le répertoire concerné HOME, WORKDIR, ARCHIVE ou sous-répertoire du COMMONDIR (elle ne peut donc pas y créer de fichier ni de sous-répertoire). Les droits ACL permettent uniquement l'accès au répertoire lui même. Notez que ceci suffit pour donner accès au(x) fichiers et sous-répertoire(s) qu'il contient et ayant les droits unix ouverts aux tiers personnes.
  2. Il est important de restreindre les droits unix des fichiers et des sous-répertoires que vous ne voulez pas partager pour empêcher une personne mal intentionnée d'en modifier le contenu. Pensez aux fichiers/répertoires cachés, pour lesquels vous pouvez utiliser la commande chmod go-rwx $HOME/.[!\.]*.
  3. Les données à partager seront donc enregistrées dans un ou des sous-répertoires pour lequel(s) vous positionnerez les droits unix en fonction du mode de partage voulu (lecture, écriture ou les deux).

Quelques exemples de son utilisation :

  • Ajout de droits ACL (option -a) sur l'espace ARCHIVE (option -e mais uniquement depuis la machine de pré/post-traitement) pour autoriser l'accès aux membres du groupe unix grp2 (supposé ne pas être le groupe du propriétaire du répertoire). 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 du propriétaire) et elle affiche alors un signe + juste après les droits d'accès :
    $ idracl -e -a -g grp2 
    $ idracl -e -l
    Liste des logins et groupes autorises a acceder 
     a mon espace /chemin/vers/votre/archive
    ===============================================
     logins autorises : 
     groupes autorises : grp2
    
    $ ls -ld $ARCHIVE
    drwxr-x---+ 19 login grp 131072 Nov 16  2015 /chemin/vers/votre/archive
  • Ajout de droits ACL (option -a) sur l'espace WORKDIR (option -w) pour deux logins (login1 et login2) et deux groupes unix (grp1 et grp2) en effectuant plusieurs appels à la commande :
    $ idracl -w -a -u login1 
    $ idracl -w -a -u login2 
    $ idracl -w -a -g grp1 
    $ 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 : login1 login2
     groupes autorises : grp1 grp2
  • La commande idracl permet aussi de supprimer les droits ACL partiellement (option -d) ou totalement (option -z). Par exemple avec le HOME :
    $ idracl -l
    Liste des logins et groupes autorises a acceder 
     a mon espace /chemin/vers/votre/home
    ===============================================
     logins autorises : login1
     groupes autorises : grp1 grp2
    
    $ idracl -d -g grp1 
    $ idracl -l
    Liste des logins et groupes autorises a acceder 
     a mon espace /chemin/vers/votre/home
    ===============================================
     logins autorises : login1
     groupes autorises : grp2
    
    $ idracl -z 
    $ idracl -l
    Liste des logins et groupes autorises a acceder 
     a mon espace /chemin/vers/votre/home
    ===============================================
     logins autorises : 
     groupes autorises : 
    
  • La commande idracl permet de gérer les droits ACL (options -a,-d et -z) sur un sous-répertoire de l'espace COMMONDIR (option -c repertoire). Exemple avec deux logins (login1 et login2) et deux groupes unix (grp1 et grp2) :
    $ idracl -c repertoire -a -u login1 
    $ idracl -c repertoire -a -u login2 
    $ idracl -c repertoire -a -g grp1 
    $ idracl -c repertoire -a -g grp2 
    
    $ idracl -c repertoire -l
    Liste des logins et groupes autorises a acceder 
    a mon espace /chemin/vers/commondir/repertoire
    ===============================================
     logins autorises : login1 login2
     groupes autorises : grp1 grp2
    
    $ idracl -c repertoire -d -g grp1 
    $ idracl -c repertoire -l
    Liste des logins et groupes autorises a acceder 
    a mon espace /chemin/vers/commondir/repertoire
    ===============================================
     logins autorises : login1 login2
     groupes autorises : grp2
    
    $ idracl -c repertoire -d -u login2 
    $ idracl -c repertoire -l
    Liste des logins et groupes autorises a acceder 
    a mon espace /chemin/vers/commondir/repertoire
    ===============================================
     logins autorises : login1
     groupes autorises : grp2
    
    $ idracl -c repertoire -z 
    $ idracl -c repertoire -l
    Liste des logins et groupes autorises a acceder 
    a mon espace /chemin/vers/commondir/repertoire
    ===============================================
     logins autorises : 
     groupes autorises :