[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Les ACL modifient le CHMOD ?




Le 13/10/2024 à 20:58, didier gaumet a écrit :

Bon, alors rappel: les ACL et moi ça fait deux, j'ai lu la doc en diagonale pour comprendre un peu de quoi ça parle
( manpages de setfacl(1) et acl(5), page web https://www.malekal.com/acl-access-control-lists-linux/#Modifier_le_mask_des_ACL )

ce que je retiens de ton problème, a priori, si j'ai compris correctement (pas sûr)

- tu établis des ACL de base (par opposition aux ACL étendues et ACL par défaut)
- les ACL de base et les permissions/attributs de fichiers sont équivalentes et interdépendantes (un chmod modifie le résultat d'un getfacl et un setfacl (pour ACL de base) modifie le résultat d'un ls)
- les ACL de base étant équivalentes aux permissions/attributs de fichier, on peut les modifier mais pas les détruire (de même qu'on ne peut modifier par chmod les permissions d'un fichier pour rendre impossible lecture/écriture/exécution mais il n'est pas possible de supprimer le système de permissions de fichiers sur ce fichier)

donc il semblerait que dans ton cas pratique ce que tu veux c'est modifier les ACL de base pour les remettre à une valeur équivalente aux permissions de ton fichier à l'origine.

par contre si tu voulais supprimer des ACL étendues ou des ACL par défaut, il n'y aurait pas de problème

Extrait du man de setfacl:
======================================================================
AUTOMATICALLY CREATED ENTRIES

Initially, files and directories contain only the three base ACL entries for the owner, the group, and others. There are some rules that need to be satisfied in order for an ACL to be valid:

    The three base entries cannot be removed. There must be exactly one entry of each of these base entry types.
======================================================================

Tout ça me passant largement au-dessus de la casquette, j'ai peut-être rien compris ;-)


Voilà tout à fait j'ai rien compris : je crois avoir lu que setfacl ne peut pas modifier les droits CHMOD.
C'est une surcouche ACL que l'on applique qui n'a aucun droit sur les droits du propriétaire du fichier. Donc, les droits du propriétaire du fichier n'ont en aucun cas a changer.

Les ACL peuvent donc appliquer des droits pour élever ou restreindre les droits de groupe ou d'utilisateur.
Je comprend cela de la sorte, on applique une couche de droit supplémentaire, qui n'a pas a changer la valeur réelle du CHMOD qui a été appliqué.

Il semblerait que cela ne fonctionne pas ainsi, puisque l'on peut voir que le fichier a subit des modifications de ces droits, suite à l'application d'un masque puis à son retrait.
On passe de 644 à 604.

# Le fichier a des droits en 644.
chmod 644 ip.php
ls -la ip.php
-rw-r--r--

getfacl ip.php

# file: ip.php
# owner: joomla-pool
# group: joomla-pool
user::rw-
group::r--
other::r--

setfacl -m m::--- ip.php
ls -la ip.php
-rw----r--+

getfacl ip.php

# file: ip.php
# owner: joomla-pool
# group: joomla-pool
user::rw-
group::r--            #effective:---
mask::---
other::r--

setfacl -k ip.php
ls -la ip.php
-rw----r--+

getfacl ip.php

# file: ip.php
# owner: joomla-pool
# group: joomla-pool
user::rw-
group::r--            #effective:---
mask::---
other::r--

setfacl -b ip.php
ls -la ip.php
-rw----r--
getfacl ip.php

# file: ip.php
# owner: joomla-pool
# group: joomla-pool
user::rw-
group::---
other::r--


Le droit d'écriture du groupe a disparu. Le fichier a des droits en 604.

C'est peut être parfaitement normal ...
Cela me dérange de perdre des droits sur les fichiers, après avoir appliqué un masque d'ACL.
Surtout si l'on regarde le masque --- c'est étonnant qu'il ne fasse que disparaître les droits du groupe, et, qu'il laisse toujours en place le droit de lecture r pour l'utilisateur représenté par le 4.
A moins que m:: ne représente le groupe ?

Si je lance les commandes dans cet ordre :
setfacl -m o::--- ip.php
setfacl -m m::--- ip.php
ls -la ip.php
-rw-------+

J'enlève les ACL :
setfacl -b ip.php

Le chmod restant est 600 :
ls -la ip.php
-rw-------



Dans cet ordre après avoir lancé les deux commandes, il me semble avoir obtenu un -rw-r----- puis seulement par après un -rw-------
setfacl -m m::--- ip.php
setfacl -m o::--- ip.ph

Quoi qu'il en soit, les droits disparaissent avec les masques.

Comment faire pour conserver une copie des CHMODS appliqués à ces fichiers ? Il faudrait GIT tout le système ... ?



Reply to: