En lisant l'échange qui précède, il y a un point minuscule qui me turlupine (une de ces questions de détail qui interpellent les
entomologistes quand ils observent un insecte à la binoculaire) dans ces deux déclarations de
François qui se recoupent :
Normalement, un fichier copié ou collé dans un dossier prend les droits du dossier, puisqu'il y est créé.
Comme l'attribution des autorisations du dossier au fichier qui y est créé = ouvrir une archive crée un fichier dans le dossier où siège l'archive.
François pense que les droits qui se trouvent attachés à un dossier, déterminant les
accédants à son espace et leurs
permissions sur cet espace, ipso facto se trouvent
hérités par les fichiers qu'un accédant autorisé va y insérer (que ce soit par création, par copier-coller passant par le presse-papier ou encore par déplacement à partir d'un autre lieu de l'espace global de l'OS). Il pense donc qu'il y a un
effet_de_dossier automatique, transférant les droits du répertoire
parent aux éléments
enfants localisés dans son espace de parenté.
♤
Pour prendre un exemple : mon nom-admin est
maco. Dans un
bash du «
Terminal», je décide de créer un dossier
home sur mon Bureau par la commande :
Par la commande :
Bloc de code:
sudo chown maco:admin ~/Desktop/home
je décide de fixer les
accédants à : propriétaire =
maco, groupe =
admin et tout-venant inchangé.
Enfin par la commande :
Bloc de code:
sudo chmod 755 ~/Desktop/home
je décide de fixer les permissions des accédants au dossier
home ainsi : propriétaire
maco =
lecture/écriture/exécution (7) ; groupe
admin =
lecture/exécution (pas d'écriture = 5) ; tout-venant
other =
lecture/exécution (pas d'écriture = 5).
Si j'admets pour vraie l'idée de
François =
effet_de_dossier automatique faisant
hériter des droits parents tout élément enfant relevant de l'espace parent du dossier, alors pour tout fichier
toto que
maco va créer/coller/déplacer dans l'espace de
home, les droits devront à l'immixion de l'enfant
toto dans le parent
home reproduire en miroir ceux de
home (sauf la permission exécutive sans pertinence pour un fichier qui n'est pas un
binaire exécutable). Donc être de
lecture/écriture pour
maco et de
lecture_seule pour
admin.
Eh bien! Sur mon Mac, ce ne sera pas le cas, car le fichier
toto que je vais créer dans le dossier
home en tant que
maco par la commande :
Bloc de code:
touch ~/Desktop/home/toto
si je m'informe de ses droits, sera en :
maco (propriétaire) = lecture/écriture ;
staff (groupe) = lecture/écriture ;
everyone (tout-venant) = lecture seule.
Le fichier
toto, quoique créé par
maco dans l'espace du dossier parent
home, n'hérite pas par 'effet_de_dossier' automatique des droits du dossier parent. Car le groupe accédant de mon fichier
toto est
staff (et pas
admin comme pour le dossier parent
home) ; et les permissions du groupe
staff du fichier
toto sont en
lecture/écriture, alors que celles du groupe du dossier parent (
admin) sont en
lecture seule.
♧
Ce
contre-exemple suffit à montrer que les droits d'accès à l'espace d'un dossier (droits appendus à ce dossier) ne
déterminent pas de façon nécessaire et suffisante la nature des droits des fichiers qui vont se trouver localisés dans cet espace parent. Car ce n'est pas l'
espace_parent qui
crée l'élément inclus, c'est l'
agent_utilisateur qui en est l'auteur (ici
maco).
Or tout agent_utilisateur dans l'espace global d'un OS relève, pour ce qui est des
permissions attribuées aux éléments qu'il crée (fichiers et dossiers), non de l'
espace d'accueil dans lequel il va créer l'élément (l'espace_parent), mais du
masque_d'utilisation universel par lequel le Système
filtre les
permissions que le
créateur transmet à sa
création. Il s'agit de l'
umask, lequel par défaut est en valeur octale de
022 devant être défalqué à la valeur octale totale possible de
777 pour la création d'un dossier et de
666 pour la création d'un fichier. Ce qui donne par défaut :
755 pour les dossiers et
644 pour les fichiers.
Mais il se trouve que
maco, sur son Mac, a édité le filtre
umask dans un fichier de préférence
/etc/launchd.conf chargé par le processus
launchd avant l'ouverture des sessions d'utilisateurs, en choisissant la valeur octale :
002 => il s'ensuit que pour tout dossier que crée
maco dans l'espace de l'OS, ses permissions sont de
775, et pour tout fichier, ses permissions de
664 - ce, indépendamment des permissions de l'espace d'accueil de l'élément créé. Si
maco crée donc le fichier
toto dans
home, le fichier
toto sera donc en
664 maco staff (car tel est le groupe par défaut que le Système impose à la création d'un élément) dans l'espace_parent du dossier
home qui est de :
755 maco admin. Il n'y a donc pas eu héritage automatique des droits du dossier aux droits du fichier, car le fichier est en
lecture/écriture : staff alors que le dossier parent est en
lecture seule : admin
♡
Si je généralise : un dossier qui porte des permissions d'
écriture pour le
groupe autorise par là un membre du groupe à
affecter l'espace parent par l'ajout ou le retrait d'éléments ; mais cette permission d'affectation de l'espace parent
ne détermine pas la nature des permissions de l'élément créé dans l'espace-parent. Les permissions sur l'espace-parent fixées au dossier qui l'inclut sont des permissions
locales et pas
chosales. Elles portent sur les
lieux de résidence, pas sur les
objets résidents. Elles permettent de
vider ou de
remplir l'espace d'accueil par des
objets, elles ne fixent pas la
nature des objets. L'
essence de l'élément ne découle pas du
lieu qu'il occupe. Si
maco a une permission 'vider/remplir un lieu de l'espace parent' (= écrire), il peut remplir ce lieu avec un objet illisible et ininscriptible s'il a envie. S'il n'a pas édité l'
umask par défaut du Système, dans un espace où tout membre du groupe a droit d'écriture locale (càd. de vider/remplir les lieux d'occupation), il va créer des objets (filtrés par
022) qui seront sans permission d'
écriture de l'objet pour le même groupe.
En résumé : le
lieu n'est pas l'
objet qui occupe le lieu. Dès lors que j'ai la permission d'agir sur un lieu pour le vider/remplir, c'est mon profil d'agent_opérateur qui va fixer les permissions propres à l'objet que j'y crée (j'ai pris conscience de ce problème en étudiant
ici, au message
#2, un problème soulevé par
nitrocastel qui se plaignait que dans un dossier de
partage accessible sur un réseau local en
lecture/écriture pour le groupe et le tout-venant, les fichiers y créés par les utilisateurs portaient des permissions de
lecture seule pour le groupe et le tout-venant. Problème de permissions adhérentes à l'objet créé déterminées par l'
umask indépendamment de la nature des permissions d'emploi des
lieux déterminées par le dossier).
♢
☞ pardon pour la disproportion entre la longueur du topo et la minceur du point, mais, je ne sais pas pourquoi, c'est un sujet qui me turlupine

. Qu'est-ce que tu en penses,
François? Et qu'en pensent
bompi et
Moonwalker?
♔