ACL sur Ubuntu

ACL Ubuntu

ACL est un système de permissions alternatifs à chmod qui permet d’avoir une gestion plus évoluée des droits sur chaque fichier et dossier.

Sur chacun d’entre eux, vous pouvez préciser les permissions pour un utilisateur et un groupe précis, mais également les droits par défaut pour les nouveaux fichiers.

Installation

Il s’agit simplement d’un paquet dans les dépôts officiels:

Sur une partition ext3 ou ext4, ça devrait fonctionner nativement, sinon je vous invite à voir comment faire sur le wiki (dans les sources).

Usage

Une fois les permissions définies, le système de fichier s’occupe seul de vérifier les permissions auprès d’ACL.

Nous allons donc avoir 2 nouvelles commandes importantes pour utiliser le système de permissions ACL.

Définir les permissions avec setfacl

Il existe plusieurs syntaxes mais je conseille celle qui est proche de chmod et qui reste explicite.

Les permissions ACL se nomment R, W et X, respectivement Read, Write et eXecute et suivent exactement les mêmes règles que chmod.

 

Pour définir les permissions de l’utilisateur cartman avec ACL

 

Pour définir les permissions du groupe web avec ACL

 

Si le nom d’utilisateur est omis, avec u::rwx par exemple, alors on modifie les droits de l’utilisateur propriétaire du fichier. Pareil pour le groupe.

Pour les dossiers, je conseille de modifier également la valeur par défaut pour cet utilisateur/groupe avec l’option -d.

Obtenir les permissions avec getfacl

Vous souhaitez voir les permissions ACL d’un fichier file alors c’est simple :

La commande getfacl affiche un récapitulatif de toutes les permissions sur le dossier path. On peut voir ici les droits pour plusieurs utilisateurs sur un seul dossier.

Le user et le group restent ceux définis par défaut mais des droits spécifiques sont établis pour cartman et www-data.

Pour un nouveau fichier ou dossier de ce répertoire, nous avons défini les mêmes droits avec les permissions par défaut default:user:XXX:permission.

Masques et permissions effectives

Vous pouvez voir qu’il existe une permission default:mask qui se comporte vraiment comme un masque par dessus les permissions, c’est une restriction pour les utilisateurs et groupes définis avec ACL 

Concrètement, même si la permission d’un utilisateur dépasse celle du masque, il ne peut pas avoir plus que ce le masque lui permet. Si le masque est r– et il possède les permissions rwx, il ne pourra que lire ce fichier. Dans ce cas, getfacl ajoute un commentaire en face pour le préciser: #effective:r–

Sources

https://doc.ubuntu-fr.org/acl

https://linux.die.net/man/1/getfacl

https://linux.die.net/man/1/setfacl

 

 

Florent

Je suis un développeur web à mon compte et je m'intéresse à beaucoup de choses en informatique...

Aucun commentaire

Commenter