Les ACL (access control lists) sont une extension des modes de protection standard d'UNIX. Les ACL sont des droits que l'on définit en plus des 9 bits de protection classiques, ils permettent en particulier d'autoriser l'accès ou de le refuser, à un utilisateur donné, ou à un groupe donné.
Deux commandes permettent de manipuler les ACL, ce sont chacl et lsacl.
La syntaxe de la commande shell chacl:
chacl '(dr.staff,r-x)(zipstein.%,r-x)(%.licence,--)' proj
qui donne sur le fichier proj les droits de lecture et d'écriture à l'utilisateur dr du groupe staff et à l'utilisateur zipstein quelque soit son groupe et qui refuse cet accès aux utilisateurs du groupe licence.
chacl '(binome.%,rwx)(%.@,-x)(%.%,--)' catalogue_projet
qui donne le droit d'accès total à l'utilisateur binome (quelque soit son groupe), permet le parcours du répertoire aux membres du groupe propriétaire et refuse l'accès à tous les autres utilisateurs.
Deux symboles spéciaux:
On retrouve aussi les autres syntaxes de chmod par exemple:
chacl %.%=r fichier
ou
chacl @.%=5 fichier
Attention les acl sont détruits par la commande chmod et la commande chacl ne permet pas de positioner les autres bits définis dans l'inode; seuls les 9 bits de protections sont positionnables par chacl.
Pour positionner les droits standard et des acl, il faut donc réaliser en succession un chmod puis un chacl.
On utilisera:
chacl '(prof.%,rwx)' catalogue_projet
pour les projets de C ou de système.
La commande lsacl [fichiers] permet de connaître les acl associés aux fichiers, remarquer qu'à l'inverse de /bin/ls cette commande n'a pas de paramètres par défaut.