linux / setfacl - Définit tous les répertoires / fichiers actuels / futurs du répertoire parent sur 775 avec le propriétaire / groupe spécifié

42

J'ai un répertoire appelé "membres" et en dessous il y a des dossiers / fichiers. Comment puis-je définir de manière récursive tous les dossiers / fichiers actuels et tous ceux à venir créés par défaut avec les autorisations 775 par défaut et appartenant respectivement au propriétaire / groupe nobody / admin? J'ai activé ACL, monté, mais n'arrive pas à obtenir la commande setfacl pour le faire correctement. Une idée comment accomplir ceci?

Maverick
la source

Réponses:

62

En fait, j'ai trouvé quelque chose qui jusqu'à présent correspond à ce que j'ai demandé, à partager ici afin que toute personne confrontée à ce problème puisse essayer cette solution:

sudo setfacl -Rdm g:groupnamehere:rwx /base/path/members/
sudo setfacl -Rm g:groupnamehere:rwx /base/path/members/

R est récursif, ce qui signifie que la règle sera appliquée à tous les éléments de ce répertoire.
d est la valeur par défaut, ce qui signifie que, pour tous les éléments futurs créés dans ce répertoire, ces règles s'appliquent par défaut. m est nécessaire pour ajouter / modifier des règles.

La première commande concerne les nouveaux éléments (d'où le d), la deuxième commande concerne les éléments anciens / existants du dossier. J'espère que cela aidera quelqu'un car ce travail est un peu compliqué et pas très intuitif.

Maverick
la source
2
C'est exactement ce dont j'avais besoin pour que le propriétaire d'un répertoire de grands-parents puisse modifier correctement le contenu des nouveaux répertoires de petits-enfants.
Joost
Si vous êtes le seul utilisateur de votre Rpi, vous pouvez remplacer g: nom du groupe par pi: pi ou seulement pi
SDsolar
Vous pouvez spécifier pour l'utilisateur, les groupes et autres sur une seule ligne, par exemple -Rdm g:groupnamehere:rwx, -Rdm u:groupnamehere:rwx.
user2340939
18

Pour aller avec votre réponse acceptée ...

Vous pouvez combiner ces commandes en tant que:

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/
Josué
la source
C'est super. Comment se fait-il que vous fixiez d:le premier article plutôt que -Rmd? Je peux dire que le second paramètre ne devrait pas avoir default- il est juste étrange de voir comment linux me l’accepte.
JREAM
1
@JREAM: Linux ( en fait getopt_long) envoie toute l'argumentation à l' option-m qui est analysée à la main par setfacl, séparant par des virgules les arguments passés. Ils sont ajoutés à une liste chaînée qui est bouclée à la fin lors de la modification de la liste de contrôle d'accès.
Benoit Duffez
2

setfacl sur linux a les options -det -kpour manipuler les permissions par défaut qui correspondent probablement à ce que vous recherchez (voir man pour plus d’informations).

Peterph
la source
1

Il est facile de définir de manière récursive des autorisations UNIX simples à la demande d'un utilisateur dûment autorisé, des autorisations de répertoires et de fichiers. Il n'est pas possible d'imposer automatiquement cela.

Vous pouvez indiquer aux utilisateurs d'utiliser l'ensemble umask de 0002, ce qui facilite la création de nouveaux fichiers à 0775 (en fonction de l'application). Mais ce n'est pas exécutoire.

Si j'ai bien compris, les ACL ne sont pas hérités sur les systèmes UNIX / Linux. Ils sont définis à la demande.

En ce qui concerne la propriété des fichiers / répertoires, vous n’avez pas beaucoup de chance ici.

En ce qui concerne la propriété du groupe de fichiers / répertoires, la définition du bit set-gid de répertoire (c.-à-d. G + s sur DIRECTORIES) entraîne l'héritage de la propriété du groupe.

Ce que j'ai fait dans de telles situations est d'exécuter un script périodique Cron racine qui réinitialise les autorisations / propriétés non conformes à la norme dans ces répertoires.

Un autre processus (NON RECOMMANDÉ) consiste à utiliser le même identifiant utilisateur lorsque vous travaillez sur ces fichiers. Cela peut être accompli par l'utilisateur qui se connecte au système sous son propre UID, puis en utilisant sudo ou su pour s'exécuter en tant qu'id. Ce n'est toujours pas à 100% en particulier en ce qui concerne les ACL et les bits d'autorisation.

mdpc
la source