Un OS multi-utilisateurs | À qui sont ces fichiers | Côté Finder
Côté UNIX | Problèmes de droits | Repair Privileges Utility | Conclusion
Résumé de l'épisode précédent : John a découvert le terrible secret de Loan. Fou de jalousie, il décide de retourner au Guatémala, là où se trouverait le fameux trésor de ses ancêtres et se fait capturer par une mystérieuse tribu dont le chef n'est personne d'autre que Marcus, son demi-frère qu'il croyait disparu ! Je sais, ça n'a rien à voir avec l'épisode précédent, mais ça rajoute du suspense, on se croirait dans le roman de l'été de Femmes Actuelles
Reprenons donc. Trois types d'utilisateur, et plusieurs types de droit. Si l'on clique sur le menu Accès, on peut décider des droits attribués au fichier pour chaque niveau :
Trois choix nous sont proposés : Lecture et écriture, Lecture seulement et Accès interdit. Par défaut, le créateur d'un fichier possède systématiquement les droits d'accès maximum à tous les fichiers. Mais si vous souhaitez modifier un fichier pour le protéger et empêcher toute erreur, rien ne vous empêche de le mettre en lecture seulement. ATTENTION ! Ne confondez pas la case Verrouiller le fichier disponible un peu plus haut avec l'article Lecture seulement disponible via les autorisations. Dans le premier cas, il s'agit plus ou moins d'un "reliquat" de Mac OS 9, et dont le but est de protéger le fichier contre toute vidange intempestive de la Corbeille. Le but de Lecture seulement est d'empêcher de modifier uniquement le contenu du fichier. En revanche, il peut toujours être déplacé, supprimé, etc. Bref, le verrouillage et la lecture seule, ça n'a rien à voir. Enfin, Accès interdit empêche toute lecture du document, et à fortiori toute modification. C'est bien fichu hein ?
Si vous demandez la modification des droits sur un dossier, vous constaterez l'apparition d'un article supplémentaire : Écriture seulement (boîte de remise). Un dossier peut en effet être modifié pour accepter que de nouveaux éléments soit ajoutés, mais qu'on ne puisse pas accéder au contenu de ce dossier. Et il existe déjà dans Mac OS X un dossier sur lequel l'écriture seulement est autorisée. Pour le trouver, allez dans le dossier Public après avoir sélectionné l'article Départ du menu Aller du Finder. En lisant les informations de ce fichier, on découvre avec angoisse (oui, varions un peu les sentiments
) que le dossier Boîte de dépot (alias Drop Box) possède des droits en écriture seulement pour les autres utilisateurs et le groupe. Ce dossier est accessible en local (sur le même poste) ou en réseau. Cela signifie donc que n'importe qui peut rajouter des fichiers ou dossiers dans cette boîte de remise.
Le Finder est d'ailleurs plutôt sympa, puisqu'il est capable d'afficher en fonction de ces droits une icône différente.
![]()
Cependant, la représentation que fait le Finder des droits d'accès reste "simplifiée", et un peu plus en accord avec ce qui était auparavant géré au niveau du partage de fichiers de Mac OS 9 et inférieur. La réalité des droits UNIX est légèrement plus complexe. En réalité, c'est beaucoup plus complexe, mais je dis "légèrement" pour que vous continuiez à lire
UNIX gère les droits d'accès selon un modèle que je nommerai rwx parce que ça sonne bien à l'oreille. R, W, et X sont trois lettres utilisées pour représenter les droits à la sauce UNIX :
- R : Read, droits d'accès en lecture pour un fichier ou un dossier. Quand vous avez un droit en lecture sur un dossier, vous pouvez visualiser son contenu.
- W : Write, droits d'accès en écriture, selon toute logique ;
- X : eXecute, droits d'accès en exécution. Pour un fichier, cela signifie qu'il devient exécutable, donc exploitable sous la forme d'un pseudo-logiciel. Dans ce cas, son contenu ne sera pas lu par comme étant un fichier, mais il devient en quelque sort un "programme" exploitable par exemple dans un environnement de terminal. C'est le cas de toutes les commandes UNIX exploitables par le Terminal. Si vous retirez le statut d'exécution sur le fichier de la commande, ben la commande elle-même ne fonctionnera plus. Dans le cas d'un dossier, l'application du droit d'exécution indique que l'utilisateur peut se placer dans le dossier. C'est un concept peu évident quand on travaille sur Mac, car lorsqu'on ouvre un dossier du Finder, l'interface graphique nous place systèmatiquement à l'intérieur de ce dossier. Mais sous UNIX, on peut très bien regarder le contenu d'un dossier sans avoir le droit de se placer dedans Quand on vous dit qu'UNIX est un monde bizarroïde, hein.
Les trois types de droit s'appliquent à chaque niveau d'utilisateur du fichier : possesseur, groupe, et autres. En anglais, ça donne User, Group et Others. Si on prend les initiales, ça fait ugo, délire. 1
Et maintenant, on résume tout ça dans le tableau suivant :

Je sais pas si ça sert vraiment à grand chose, mais en tout cas, le tableau est joli, ce qui ne gâte rien. Ah si, remarquez, il peut être utile pour expliquer les points suivants.
1) Tout d'abord, le fait que cette méthode de lecture est caractéristique du monde UNIX. Pour comprendre, lancez le Terminal, et tapez la commande
ls -l
La commande ls (le "l", c'est un L minuscule, hein) suivie de l'option l (encore un L minuscule). Cette commande sert à faire un listing long des fichiers d'un dossier. Vous obtenez quelque chose qui ressemble à cela :

Regardez les premières lignes. Dans la colonne la plus à gauche, on lit "drwx------". La première lettre nous indique juste le statut de directory (répertoire, ou dossier en langage Mac). Mais les lettres suivantes nous donnent, elles, les droits sur le dossier : rwx------ se décompose donc en trois paquets de trois lettres. Le premier paquet rwx indique des droits en lecture, écriture et exécution sur ce dossier pour le possesseur de ce dossier. Le possesseur est d'ailleurs indiqué sur la même ligne dans la 3ème colonne : c'est test. Le deuxième paquet --- indique qu'aucun droit n'est attribué au groupe staff (4ème colonne). Enfin, le dernier paquet --- indique là encore l'absence complète de droits pour les utilisateurs autres que les membres du groupe staff et le possesseur test.
2) La dernière ligne affiche les chiffres 4, 2 et 1. Je n'ai pas marqué ces chiffres au hasard, mais parce qu'ils représentent le poids donné à chaque type de droits. Ces chiffres ne sont pas là par hasard : 4, c'est 22, 2, c'est 21, et 1 vaut 20. Chaque "paquet" de droits peut alors prendre une valeur comprise entre 0 et 7. Regardez le tableau suivant :

Si on décompose chacune de ses valeurs de 0 à 7, on peut facilement retranscrire l'absence ou la présence d'un type de droit donné. Par exemple, si tous les droits sont présents, on obtient la valeur 4+2+1, soit 7. Si on a seulement accès en lecture et en exécution au fichier, la valeur associée sera 4+0 (pas de droit en écriture, la valeur n'existe donc pas) + 1 = 5.
C'est intéressant à savoir, car on peut modifier facilement les droits via des combinaisons de chiffre, par exemple avec le terminal en utilisant la commande chmod. Cette commande modifie les droits d'accès d'un fichier et peut s'utiliser de plusieurs façons. Pour tester, retournez dans le Terminal, puis tapez en premier la commande cd :
[localhost:~] guillaum% cd
Ceci vous assurera de retourner dans votre dossier de départ.
Puis on crée un dossier test à l'aide de la commande mkdir :
[localhost:~] guillaum% mkdir test
Consultons les droits attribués par défaut à ce dossier à l'aide de la commande ls. Nous y associerons une commande appelée grep qui sélectionne uniquement les lignes de texte dans un fichier ou dans le résultat d'une commande avec un pipe (une barre verticale | obtenue avec la combinaison de touches Maj - Option - L sur un clavier Azerty français, amis belges, suisses, francophones ou autres, bonne chance pour découvrir la bonne combinaison chez vous) :
[localhost:~] guillaum% ls -l | grep test
Le résultat ci-dessous :
drwxr-xr-x 2 guillaum staff 68 Aug 31 14:56 test
Comme vous voyez, le dossier test possède des droits rwx pour le possesseur, r-x pour le groupe et r-x également pour les autres utilisateurs. Ce qui nous donne donc, si on décompose à l'aide du tableau ci-dessus :
Possesseur : r + w + x = 4 + 2 + 1 = 7
Groupe : r + x = 4 + 0 + 1 = 5
Autres : r + x = 4 + 0 + 1 = 5
Donc, l'ensemble des droits pour ce fichier a la valeur 755. Chic, non ?
Pour modifier ces droits, appliquons la commande chmod. Nous allons nous amuser à retirer les droits en écriture pour le possesseur, ceux en exécution pour le groupe et tous les droits pour les autres. En clair :
Possesseur : r-x = 4 + 0 + 1 = 5
Groupe : r-- = 4 + 0 + 0 = 4
Autres : --- = 0 + 0 + 0 = la tête à toto, soit 0
La commande à appliquer sera alors :
[localhost:~] guillaum% chmod 540 test
Rien ne ne vous confirmera la modification. Il faut donc retaper la commande ls associée au grep 2 :
[localhost:~] guillaum% ls -l | grep test
Et voila le résultat :
dr-xr----- 2 guillaum staff 68 Aug 31 14:56 test
Et oui, ça marche ! Attention cependant : le Finder a parfois du mal à se rendre compte immédiatement des modifications faites via le Terminal. Il faut parfois le relancer après un Force-Quit, voire fermer la session de travail pour que les changements de droits soient pris en compte.
Tiens, juste pour vous montrer un dernier ch'tit truc : voici les droits pour un dossier contenant des commandes UNIX. Pour lire le contenu de ce dossier, tapez la commande :
[localhost:~] guillaum% ls -l /bin
Comme vous le constatez, les droits en écriture sont identiques pour tout le monde, et le droit en exécution est appliqué pour chaque niveau d'utilisateur.

Intéressant non ? Non ? Vraiment pas ? Bon, ben on va retourner au Finder avant que vous fassiez une dépression Terminalienne. 3