Access Control List

De Ensiwiki.

(Redirigé depuis ACL)
Aller à : Navigation, rechercher

Les ACLs, ou « Access Control List », sont un système de droits sur les fichiers qui s'ajoute à la gestion des droits « classiques » sous Unix (Utilisateur/Groupe/Autres, cf. les commandes chmod et ls -l). Elles peuvent vous permettre de donner les droits en lecture et/ou écriture à un répertoire bien particulier pour un utilisateur en particulier. Pour vous, une utilisation évidente est de donner les droits à vos binômes de TPs sur les répertoires concernés.

Spécifique EnsimagÀ l'Ensimag, le contenu de vos compte est protégé, vous ne pouvez pas utiliser les ACLs pour donner des permissions aux autres utilisateurs. Par contre, chaque serveur contient une partition /equipes qui peut servir à créer un espace partagé entre plusieurs étudiants (cf. Gestion des comptes à l'Ensimag).


Méthode expresse, à l'Ensimag : autoriser-equipe

Vos enseignants vous ont préparé un script pour vous faciliter la vie : autoriser-equipe. Mettons qu'Alice veuille créer un répertoire dans lequel elle va travailler avec Bob et Charlie. La configuration de l'Ensimag ne permet pas d'autoriser d'autres utilisateurs à accéder au répertoire $HOME d'Alice, donc elle va créer ce répertoire dans la partition prévue à cet effet : /equipes/ :

telesun:~> mkdir /equipes/alice-et-bob/

Alice ne veut donner les droits qu'à ses coéquipiers, elle va donc s'assurer que le répertoire est bien protégé :

telesun:~> chmod 700 /equipes/alice-et-bob/
telesun:~> ls -ld /equipes/alice-et-bob/
drwx------ 2 alice etudiants 4096 Sep 10 15:38 /equipes/alice-et-bob/

Alice peut créer des sous-répertoires dans /equipes/alice-et-bob/, par exemple /equipes/alice-et-bob/TPs/Ada/TP1 utilisé dans la suite des explications (mkdir -p /equipes/alice-et-bob/TPs/Ada/TP1 pour le créer).

Elle va maintenant donner les droits sur le répertoire /equipes/alice-et-bob/TPs/Ada/TP1, il suffit pour elle de lancer la commande (bob et charlie sont les logins des coéquipiers) :

telesun:~> autoriser-equipe /equipes/alice-et-bob/TPs/Ada/TP1/ bob charlie
setfacl -Rm u:bob:rwx '/equipes/alice-et-bob/TPs/Ada/TP1'
setfacl -Rm d:u:bob:rwx '/equipes/alice-et-bob/TPs/Ada/TP1'
setfacl -Rm u:charlie:rwx '/equipes/alice-et-bob/TPs/Ada/TP1'
setfacl -Rm d:u:charlie:rwx '/equipes/alice-et-bob/TPs/Ada/TP1'
setfacl -Rm d:u:alice:rwx '/equipes/alice-et-bob/TPs/Ada/TP1'
setfacl -m u:bob:x '/equipes/alice-et-bob/TPs/Ada'
setfacl -m u:charlie:x '/equipes/alice-et-bob/TPs/Ada'
setfacl -m u:bob:x '/equipes/alice-et-bob/TPs'
setfacl -m u:charlie:x '/equipes/alice-et-bob/TPs'
setfacl -m u:bob:x '/equipes/alice-et-bob'
setfacl -m u:charlie:x '/equipes/alice-et-bob'

Les utilisateurs 'bob charlie' peuvent maintenant travailler dans /equipes/alice-et-bob/TPs/Ada/TP1
Pour enlever les droits sur ce repertoire : setfacl -Rb '/equipes/alice-et-bob/TPs/Ada/TP1'
Pour voir les ACLs sur ce repertoire :      getfacl '/equipes/alice-et-bob/TPs/Ada/TP1'

Un exemple détaillé : donner les droits à votre binôme

Supposons que l'utilisatrice alice souhaite donner les droits en écriture à l'utilisateur bob sur le répertoire /equipes/alice-et-bob/tps/tp1-algo/ tout en protégeant les répertoires parents :

  • On va d'abord interdire complètement à bob d'accéder à /equipes/alice-et-bob/  :
alice> setfacl -Rm u:bob:--- /equipes/alice-et-bob/
  • Ensuite on permet à bob de (seulement) traverser le répertoire /equipes/alice-et-bob/ en lui donnant les droits d'exécution. De cette manière il ne peut ni voir ni lire le contenu de /equipes/alice-et-bob/ mais seulement accéder au dossier que l'on va lui autoriser (dans la mesure où il connait le chemin d'accès).
alice> setfacl -m u:bob:x /equipes/alice-et-bob/
  • Deux possibilités se présentent à nous : autoriser l'utilisateur à accéder en lecture seule à /equipes/alice-et-bob/tps/,
alice> setfacl -m u:bob:rx /equipes/alice-et-bob/tps/

Ou bien : on peut n'autoriser que la traversée du répertoire /equipes/alice-et-bob/tps mais pas sa lecture, au choix.

alice> setfacl -m u:bob:x /equipes/alice-et-bob/tps/
  • Quelque soit la solution choisie, la suite reste identique, on peut vérifier avec :
alice> ls -ld /equipes/alice-et-bob/
drwx--x---+ alice etudiants 4096 2008-06-26 19:25 /equipes/alice-et-bob

Un caractère + apparaît derrière les rwx------ habituels, pour signifier qu'une ACL a été positionnée sur ce répertoire. Pour en voir le contenu, on fait :

 alice> getfacl ~
 getfacl: Removing leading '/' from absolute path names
 # file: home/testacls
 # owner: testacls
 # group: testacls
 user::rwx
 user:bob:--x
 group::---
 mask::r-x
 other::---

Bob a maintenant les droits --x sur ce répertoire. De son côté, il peut faire un cd vers le répertoire /equipes/alice-et-bob/tps/, mais n'a pas encore accès au répertoire /equipes/alice-et-bob/tps/tp1-algo/.

  • On donne les droits en écriture :
alice> setfacl -Rm u:bob:rwx /equipes/alice-et-bob/tps/tp1-algo

Et le tour est joué : Bob peut maintenant éditer les fichiers du répertoire /equipes/alice-et-bob/tps/tp1-algo. Par contre, s'il en crée de nouveaux, ils lui appartiendront par défaut, et Alice n'aura pas les droits dessus. La dernière étape résout ce problème :

  • On fait en sorte que les droits du répertoire soient hérités automatiquement pour les nouveaux fichiers :
alice> setfacl -Rm d:u:bob:rwx /equipes/alice-et-bob/tps/tp1-algo
alice> setfacl -Rm d:u:alice:rwx /equipes/alice-et-bob/tps/tp1-algo

Et voilà !

Plus de doc

  • Gestion des ACLs sur lea-linux.org, en français et facile à lire.
  • Oserions-nous vous suggérer man getfacl et man setfacl ?
Récupérée de « http://ensiwiki.ensimag.fr/index.php/Access_Control_List »
Catégories : Linux | Avancé
Powered by MediaWiki
Attribution-Share Alike 3.0 Unported
  • Dernière modification de cette page le 10 septembre 2012 à 14:46.
  • Cette page a été consultée 9 662 fois.
  • Contenu disponible sous Attribution-Share Alike 3.0 Unported.
  • Politique de confidentialité
  • À propos de Ensiwiki
  • Avertissements
 
Affichages
  • Page
  • Discussion
  • Voir le texte source
  • Historique
Outils personnels
  •  
  • Connexion
A ne pas manquer
  • Aide à la rédaction de documents écrits
  • objets trouvés
  • FAQ
  • FAQ 1A
  • Choix de filières
  • FAQ Bug Busters
  • EnsiLinux
  • Lexique franco-anglais
Actualité
  • Logiciel de Base Apprentis
  • Conception et Exploitation des Processeurs (CEP)
  • Projets de spécialité - 2A
Navigation
Ensimag
  • Accueil
  • Mode d'emploi
  • Droit d'auteur
  • Modifications récentes
  • Page au hasard
  • Téléverser plusieurs fichiers
Boîte à outils
  • Pages liées
  • Suivi des pages liées
  • Pages spéciales
  • Version imprimable
  • Lien historique
  • Principaux contributeurs