Comment obtenir setfacl pour définir les autorisations ACL de manière récursive sur Linux?

20

J'installe un nouveau serveur et je voulais donner un coup de main à ACL sur les autorisations de style chown: chgrp: chmod.

La page de manuel de setfacl indique que l'option '-R' peut être utilisée pour définir l'ACL de manière récursive sur les fichiers et les répertoires.

-R, --recursive Appliquer les opérations à tous les fichiers et répertoires de manière récursive. Cette option ne peut pas être mélangée avec '--restore'.

Si la disposition de mon répertoire ressemble à ceci

test/
   subtest/
   subtest.txt

et j'exécute

setfacl -Rm d:u:foo:rwX test

L'ACL prend effet sur le répertoire «subtest», mais pas sur le fichier subtest.txt.

Je pense que je peux utiliser find + exec pour le contourner, mais je prévois d'utiliser ce serveur pour former quelques autres administrateurs et je veux le garder aussi simple que possible afin que nous ne soyons pas accrochés à certains des plus avancés conventions.

Merci

Joe Holloway
la source

Réponses:

43

Essayer:

setfacl -Rm u:foo:rwX,d:u:foo:rwX test

pour modifier l'ACL actuelle ainsi que la valeur par défaut. Je crois que "d:" affecte uniquement la liste de contrôle d'accès (d) efault des répertoires et laisse les fichiers intacts. Ensuite, si vous créez un nouveau fichier dans le répertoire, il hérite de l'ACL de son répertoire parent via la valeur par défaut.

En pause jusqu'à nouvel ordre.
la source
Cela a du sens même si cela semble un peu redondant
Joe Holloway
1
Cela fonctionne-t-il également pour supprimer le contrôle d'accès? Peut-être quelque chose à l'effet de: sudo setfacl -Rx g: gid path
pourquoi le changement de place entre les drapeaux -Ret -mrompt la commande?
pkaramol
@pkaramol: Parce que l' -moption prend un argument (la spécification ACL u:foo:rwX,d:u:foo:rwXdans ce cas) et le changement de l'ordre des options sépare l'option de son argument. Il se peut également que le setfaclcodage attende d'abord ses principales options.
pause jusqu'à nouvel ordre.