Forcer les droits sur tous les fichiers et sous-répertoires d’un répertoire donné

Vous avez un répertoire, et vous souhaitez que tous les fichiers, répertoires, sous-répertoires, etc. créés dedans aient certains droits. Comment faire ?

 

Forcer tous les sous-répertoires et fichiers à hériter du groupe du répertoire parent, ça on sait faire : il suffit de positionner le bit setgid à l’aide de la commande chmod g+s repertoire. Dorénavant, tout fichier ou répertoire créé dans celui-ci héritera de son groupe. Quel que soit l’utilisateur qui le crée.

Faire en sorte que tout fichier ou répertoire créé ait certains droits, on sait faire aussi. Il suffit d’utiliser umask. Mais ça s’applique à tout fichier créé dans le shell où on a tapé la commande. Donc quel que soit le répertoire, et seulement dans le shell concerné.

Mais faire ça pour un seul répertoire donné, et quel que soit l’utilisateur et le shell où se fait la création, c’est plus compliqué (mais pas tant que ça).

Il faut utiliser les ACL.

Alors tout d’abord, apt-get install acl.

Ensuite, on ajoute dans /etc/fstab l’option acl pour la partition concernée.

/dev/sdb1     /mnt/data                 ext4    rw,noatime,errors=remount-ro,acl  0    1

On démonte la partition concernée (umount /point/de/montage) et on remonte pour tenir compte des options ajoutées dans le fstab (mount -a).

Et maintenant, magie ! On peut se servir des acl.

Par exemple setfacl -m d:g:www-data:w essai/ nous indique que tout fichier ou sous-répertoire créé dans le répertoire essai aura dorénavant comme groupe www-data et les droits d’écriture (w) pour ce groupe.

Si on fait ls -l, on voit un petit + apparu à côté des droits du fichier.

drwxrwsr-x+ 3 root www-data  4096  8 oct.  20:05 essai

C’est tout !

Ce contenu a été publié dans Astuces. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>