Au début, je crée un fichier et vérifie qu'il s'agit des autorisations standard et des entrées ACL:
$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
Ensuite, je définis le masque ACL sur le fichier et vérifie à nouveau ses autorisations standard et ses entrées ACL:
$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
Notez que la permission de groupe standard du masque ACL sur le fichier a également changé.
- Quelle connexion existe-t-il entre le masque ACL et l'autorisation de groupe standard?
- Quelle est la raison du couplage des autorisations de masque ACL et de groupe de fichiers? Quelle logique se cache derrière cela?
Les distributions en question sont Debian Linux 7.6 et CentOS 7
ÉDITER
À ce stade, je voulais juste partager certaines de mes conclusions que j'ai trouvées tout en recherchant les relations entre les autorisations de groupe de fichiers standard et le masque ACL. Voici les observations empiriques que j'ai trouvées:
Le masque ACL peut être modifié:
- en le définissant directement avec la
setfacl -m m:<perms>
commande; - en modifiant les autorisations de groupe de fichiers avec la
chmod
commande (si le masque ACL est déjà présent; il peut ne pas être présent car il est facultatif s'il n'y a pas d'autorisations ACL d'utilisateur ou de groupe nommées sur le fichier); - en ajoutant une entrée ACL d'utilisateur ou de groupe nommé (le masque sera automatiquement recalculé).
- en le définissant directement avec la
Le masque appliquera des droits d'accès maximum (s'il y a des entrées ACL avec des autorisations présentes qui dépassent les autorisations du masque ACL) uniquement si le masque est défini directement par setfacl ou par modification de l'autorisation de groupe de fichiers avec chmod (non calculé automatiquement). Toutes les modifications apportées aux entrées ACL déclencheront le recalcul automatique du masque ACL et désactiveront effectivement le "mode d'application".
Il existe quelques effets secondaires affectant implicitement les autorisations de groupe de fichiers standard lors de l'utilisation des ACL:
- Une entrée ACL d'utilisateur ou de groupe nommé appliquée à un fichier peut modifier le masque ACL (augmenter ses autorisations) et donc les autorisations de groupe de fichiers effectives. Par exemple, si vous, en tant que propriétaire du fichier, disposez d'autorisations "rw-r - r-- jim étudiants" et que vous accordez également l'autorisation rw à l'utilisateur "jack", vous accorderez également implicitement des autorisations rw à quiconque du groupe "étudiants".
- Un masque ACL plus strict (moins d'autorisations) peut supprimer définitivement les autorisations de groupe de fichiers standard correspondantes. Par exemple, si vous avez un fichier avec des autorisations de groupe de fichiers standard rw et que vous appliquez un masque ACL en lecture seule au fichier, ses autorisations de groupe passeront en lecture seule. Ensuite, si vous supprimez toutes les entrées ACL étendues (avec la
setfacl -b
commande), les autorisations de groupe resteront en lecture seule. Cela s'applique uniquement au masque ACL plus strict, le masque ACL plus doux (plus d'autorisations) ne modifie pas définitivement l'autorisation du groupe de fichiers d'origine après sa suppression.
la source
Réponses:
Cela n'a pas de sens si les autorisations du fichier Unix ne correspondent pas à l'entrée acl et vice versa. En conséquence, la page de manuel (
acl(5)
) indique ce que vous demandez:Addendum en réponse à la discussion:
Une bonne explication est ici . En substance, le masque est un
la source
chmod
commande pour modifier les autorisations standard et vice versa lorsque vous exécutez, disonsgetfacl -m u:someuser:rwx
, l'autorisation de fichier standard pour le propriétaire du fichier changera et la modification sera reflétée dans lals -l
sortie. C'est vrai, mais je ne vois pas comment cela répond à ma question-rw-r--r-- 1 user user
autorisations initiales , cet ACL utilisateur nommé sera accepté et le masque ACL (ainsi que les autorisations de groupe de fichiers) seront également modifiés en rwx. --- [voir le commentaire suivant comme suite]-rw-rwxr-- 1 user user
ou non avec les nouvelles autorisations du fichier ? Comment déterminez-vous la contradiction? En comparant les autorisations ACL de testuser à l'autorisation de groupe de fichiers standard? Quelle logique vous a amené à comparer les autorisations de groupe aux autorisations d'utilisateur? N'est-ce pas des entités différentes? N'est-ce pas contre-intuitif? C'est probablement évident pour vous mais j'ai encore du mal à le saisir.J'ai finalement compris ce qui se passait exactement quand j'ai vu ce lien Gestion des ACL
Plus précisément, ces masques remplacent et fonctionnent essentiellement pour remplacer NAMED USER et toutes les autorisations GROUP. Cela signifie que si vous:
J'espère que cela aide.
la source
La logique est complètement brisée et donc les ACL POSIX sont des bêtises pures et inutiles.
S'ils visaient à préserver la compatibilité avec les applications qui n'ont pas la notion d'ACL, à l'exception du
modèle"ugo" UNIX primitifstandard, elles ont en fait échoué au début, car maintenant, chaque application qui efface les autorisations de groupe retire effectivement l'accès ajouté par les ACL.la source