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.

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 autoriser Bob et Charlie sur le répertoire ~alice/TPs/Ada/TP1, il suffit pour elle de lancer la commande :

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

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

Un exemple : donner les droits à votre binôme

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

  • On va d'abord interdire complètement à bob d'accéder à ~alice  :
alice> setfacl -Rm u:bob:--- ~/
  • Ensuite on permet à bob de (seulement) traverser le répertoire ~alice en lui donnant les droits d'exécution. De cette manière il ne peut ni voir ni lire le contenu de ~alice 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 ~/
  • Deux possibilités se présentent à nous : autoriser l'utilisateur à accéder en lecture seule à ~alice/tps/,
alice> setfacl -m u:bob:rx ~/tps/

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

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

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 ~alice/tps/, mais n'a pas encore accès au répertoire ~alice/tps/tp1-algo/.

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

Et le tour est joué : Bob peut maintenant éditer les fichiers du répertoire ~/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 ~/tps/tp1-algo
alice> setfacl -Rm d:u:alice:rwx ~/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é
Affichages
  • Page
  • Discussion
  • Voir le texte source
  • Historique
Outils personnels
  •  
  • Connexion
Actualité
  • Soutenances de PFE
  • Projet système
  • Projets spécialité
  • Lexique franco-anglais
  • Stage Unix de rentrée
  • Projet C
  • Plannings des stages
Navigation
Logo Ensimag
  • Accueil
  • FAQ
  • Mode d'emploi
  • Droit d'auteur
  • Modifications récentes
  • Page au hasard
Boîte à outils
  • Pages liées
  • Suivi des pages liées
  • Pages spéciales
  • Version imprimable
  • Lien historique
  • Principaux contributeurs
Powered by MediaWiki
Attribution-Share Alike 3.0 Unported
  • Dernière modification de cette page le 10 septembre 2009 à 20:30.
  • Cette page a été consultée 2 335 fois.
  • Contenu disponible sous Attribution-Share Alike 3.0 Unported.
  • Politique de confidentialité
  • À propos de Ensiwiki
  • Avertissements