Une
ACE : "
everyone deny delete" comme listée en n°
4 n'est pas sans précédents sur un répertoire.
C'est une
ACE de type "
restrictif" pour le groupe secondaire
everyone, qui a pour effet secondaire de forcer un
admin sur l'espace du dossier à
s'authentifier par mot-de-passe admin s'il veut
supprimer un élément du dossier (càd. exercer le même genre de permission qui est déniée à
everyone) > dans la mesure où, quoique
admin ayant le droit de supprimer, il est aussi membre du groupe secondaire
everyone privé du droit de supprimer > il doit donc prouver qu'il n'est pas qu'un membre du
everyone, mais en qualité de membre du groupe
admin qu'il a bien le privilège du "
delete".
=> ce type d'
ACE restrictive associée à
everyone est donc susceptible de rendre pénible pour un
admin (voire l'
user, quand il ne s'agit pas de
root) l'exercice de son « droit naturel » sur les objets impliqués, en l'obligeant à s'authentifier pour faire jouer les permissions déniées à
everyone.
=> il est bien entendu possible de "
sur-contrer" cette situation, en ajoutant à l'
user ou à l'
admin une
ACE "positive" qui l'autorise spécifiquement à faire jouer cette permission (déniée à
everyone), en situant cette
ACE à un rang de l'
ACL qui lui donne une précellence exécutive sur le "
everyone deny delete" (comme tu vois, ça devient très vite une espèce de dentelle complexe).
--------------------
Or, si tu examines justement à présent l'
ACE positive : "
remy allow add_file,add_subdirectory,writeattr, writeextattr,writesecurity", tu t'aperçois de ce point de vue qu'elle ne "
surcontre" pas l'
ACE négative "
everyone deny delete".
Par ailleurs, l'absurdité consiste à avoir
4 fois le même type exact d'
ACE : "
remy allow add_file,add_subdirectory,writeattr,writeextattr,writesecurity" aux rangs
0 >
1 >
2 >
3 de la liste
ACL => cette redondance est bien évidemment inutile.
Afin d'apurer ce haut du tableau de ta liste
ACL sur le répertoire des
Applications > voici la commande à passer (copier-coller) :
Bloc de code:
sudo chmod -R -a# 1 /Applications
=> cette même commande, tu dois la passer exactement à l'identique
3 fois de suite > ce qui fait que l'utilitaire
chmod effacera récursivement l'
ACE n°
1 (= "
remy allow add_file,add_subdirectory,writeattr,writeextattr,writesecurity") de la liste
ACL une première fois, ce qui remontera le doublon n°
2 > n°
1 qui sera effacé par la réitération de la commande > ce qui remontera le nouveau doublon n°
2 (ex:
3) > n°
1 qui sera effacé à son tour par la 3è itération de la commande.
Si tu repasses alors la commande :
tu devrais obtenir le tableau d'
ACL suivant :
Bloc de code:
MacBookPro-de-Remy:~ remy$ ls -dale /Applications
drwxrwxr-x+ 101 root admin 3434 7 jul 19:44 /Applications
0: user:remy allow add_file,add_subdirectory,writeattr,writeextattr,writesecurity
1: group:everyone deny delete
Si tu passais alors la commande :
Bloc de code:
sudo chmod -R +a# 1 "remy allow delete" /Applications
tu introduirais au rang n°
1 (en repoussant l'
ACE : "
everyone deny delete" au rang n°
2) une
ACE "
sur-contrant" la restriction affectant
everyone (du moins, il est permis de l'espérer...).
Si tu préfèrais une seule
ACE pour
remy, alors il faudrait passer plutôt la commande :
Bloc de code:
sudo chmod -R =a# 0 "remy allow delete,add_file,add_subdirectory,writeattr,writeextattr,writesecurity" /Applications
qui éditerait l'
ACE n°
0 en la remplaçant par une nouvelle qui ajoute la permission de
delete dans la liste des arguments permissifs.
--------------------