Utilisation de setfacl pour autoriser les membres du groupe à écrire dans n'importe quel file d'un directory

Je voudrais utiliser setfacl pour que n'importe qui dans le groupe 'app' puisse éditer n'importe quel file contenu dans / usr / local / users / app indépendamment de ce que les permissions UNIX traditionnelles disent. J'ai deux users John et Ben. J'ai essayé de suivre les instructions d'une autre question , mais John n'est pas capable d'écrire dans certains files. On dirait que c'est à cause du masque acl. Cependant, j'ai défini le masque par défaut sur le directory de rwx, alors les files qui y sont contenus ne devraient-ils pas hériter de celui-ci lorsqu'ils sont créés?

Par exemple John ne peut pas écrire dans le file ci-dessous, mais il est membre du groupe 'app' qui a écrit des files sur le file, donc je suis surpris qu'il ne puisse pas éditer le file.

ben@app1:/usr/local/users$ ls -la app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar -rw-r--r--+ 1 ben users 38326 Apr 2 10:21 app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar ben@app1:/usr/local/users/app$ getfacl app-1.0-SNAPSHOT/lib/ # file: app-1.0-SNAPSHOT/lib/ # owner: ben # group: users user::rwx group::rwx #effective:rx group:app:rwx #effective:rx mask::rx other::rx default:user::rwx default:group::rwx default:group:app:rwx default:mask::rwx default:other::rx ben@app1:/usr/local/users$ getfacl app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar # file: app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar # owner: ben # group: users user::rw- group::rwx #effective:r-- group:app:rwx #effective:r-- mask::r-- other::r-- 

Vous remarquerez le commentaire «efficace» que getfacl vous lance. Le problème est que les permissions calculent de sorte que "app" n'obtient pas le bit d'écriture défini. Cela se produit car le masque du file est défini en lecture seule. Le masque est utilisé pour limiter la quantité d'permissions qui pourraient être dissortingbuées sur un file ou un directory particulier.

Un exemple de pourquoi vous voudriez ce comportement serait comme si vous saviez que le file pouvait légitimement avoir besoin de différents users / groupes pour y avoir access mais pour une raison quelconque les choses se compliquaient avec des permissions et vous vouliez un moyen de dire «Quel que soit l'autre les permissions par défaut sont définies, quelles que soient les appartenances à leur groupe, ou tout ce qui peut être exécuté ultérieurement par setfacl récursif, NE LE DONNEZ PAS ! " L'user propriétaire a un statut spécial dans le monde POSIX, il a des droits que les autres users n'ont pas, comme la possibilité d'être non root et de modifier les permissions sur un file et ses droits ne sont pas limités par le masque (ce qui serait inutiles de toute façon à cause du premier privilège que leur donne le système). C'est pourquoi ils reçoivent toujours rwx même si le masque est restreint.

Pour répondre à votre question spécifique : ajoutez le bit d'écriture au masque sur le file et réessayez en tant qu'user john .

voici une version en command line de l'explication ci-dessus, prenez note de la façon dont les droits "effectifs" changent quand tout ce que je modifie est le masque.

C'est impossible. cp, rsync, etc. créer des files en ignorant les ACL par défaut

https://serverfault.com/questions/183800/why-does-cp-not-respect-acls