
des centaines d'astuces pour vous faciliter le quotidien
Les droits d’accés aux fichiers sous Mac OS X

Depuis Mac OS X, il faut bien l’avouer, un des problèmes les plus courants est bien la gestion des droits (1) d’accès aux fichiers. Il arrive en effet assez fréquemment de ne pas pouvoir réaliser telle ou telle action car on ne dispose pas des autorisations nécessaires. Nous allons tenter dans cet article d’y voir plus clair.
Vous avez des problèmes d’autorisations sur des fichiers ? Vous n’arrivez pas à lire ou écrire dans un répertoire ? Vous ne pouvez pas modifier un fichier ?
La plupart des problèmes de droits peuvent se régler directement dans l’interface graphique de Mac OS X en effectuant une pomme+i sur le fichier qui pose problème, et en modifiant les réglages disponibles au bas de la fenêtre qui surgit, mais que faire ? À quoi correspondent ces réglages ? Et si l’on doit modifier un grand nombre de fichiers, quelle tâche harassante que de les modifier un par un ! Il est toutefois possible de le faire avec une grande précision via le Terminal grâce à la commande chmod.
Quelques explications
Les fondations de Mac OS X sont celles d’un système Unix, conçu dès le départ (en 1969) pour être un système multitâches et multi-utilisateur, pour être plus précis, il se base sur l’un des plus anciens systèmes Unix, BSD (Berkeley Software Distribution). Sur ce genre de système d’exploitation, les fichiers appartiennent donc tous à un utilisateur à l’intérieur d’un groupe d’utilisateurs.
L’utilisateur, c’est vous par exemple. Vous disposez d’un identifiant et d’un mot de passe, ils sont définis dans le répertoire /etc./passwd.
Le groupe d’utilisateurs, défini dans /etc./group, permet de regrouper des utilisateurs dans des groupes (un même utilisateur peut faire partie de plusieurs groupes) afin par exemple de partager des permissions entre plusieurs utilisateurs. Ces groupes et utilisateurs sont modifiables via le Gestionnaire Netinfo accessible dans le dossier /Applications/Utilities,ou par le Terminal.
Les autorisations sur les fichiers
Les droits d’accès à un fichier sont des modes de ce fichier. Un fichier comporte 3 niveaux d’autorisations, 3 façons d’accéder à celui-ci : lecture, écriture, exécution.
On les notes en Anglais, la langue de l’informatique, read, write, exécute : r signifie : possibilité de lire ce fichier ou dans ce répertoire.
w signifie : possibilité d’écrire dans ce fichier ou répertoire. x signifie : possibilité d’exécuter ce fichier ou d’aller dans ce répertoire. Voici les droits d’accès les plus courants : --- aucun accès r— Accès en lecture seule r-x Accès en lecture et en exécution pour les programmes et les scripts shell rw- Accès en lecture et écriture pour les fichiers rwx tous les accès Représenter les modes d’accès aux fichiers par des lettres symboliques est une des méthodes de notation des droits, elle à des équivalents, une notation binaire et une représentation octale :
|
||
Lire le tableau format en bas de page
|
||
Pour comprendre la représentation octale, il faut se souvenir que chaque chiffre est interprété de la même façon :
1 pour l’exécution 2 pour l’écriture 4 pour la lecture
On peut cumuler les droits en ajoutant ces chiffres. Si le premier chiffre du paramètre est 7 comme dans l’exemple précédent, il correspond alors à 4+2+1 soit la lecture(4), l’écriture(2), l’exécution (1).
Il est bien entendu possible d’utiliser la notation que l’on désire. Les groupes d’utilisateurs Il existe 3 types d’utilisateurs : le propriétaire noté user ou u le groupe d’utilisateurs noté group ou g les autres notés all ou a Les autorisations de chaque fichier auront donc cette forme : u-g-a Avec à la place de u, les autorisations de l’utilisateur, de g celle du groupe, a celles des autres... Ainsi les autorisations suivantes pour un document : rwx pour l’utilisateur, qui lui donne tous les droits sur ce fichier rw pour le groupe, qui donne le droit de lire et d’écrire dans le fichier r pour les autres, qui leur permet uniquement de lire ce fichier
Se noteront :
rwxrw-r--ou 111-110-100 ou 764
C’est notre fichier mais les autres peuvent uniquement le lire :
Donnera : Tout pour soi, rien pour les autres, le fichier est privé :
Se traduira par : Gérer les droitsPassons maintenant à la gestion proprement dite des droits : On peut visualiser ces autorisations par le biais des informations accessibles par le Finder (pomme-i ou dans le Finder, menu fichier, afficher les infos), mais aussi par le Terminal avec la commande ls -l, on rajoute l’option l à ls pour obtenir une liste longue (voir l' article sur is) et donc voir les droits des fichiers. Si on tape ls -l à la racine du Disque de démarrage ( soit cd / pour se positionner à cet endroit par le Terminal) : [Mac_de_gunjin: /] % ls -l total 10233 drwxrwxr-x 65 root admin 2210 Nov 12 02:56 Applications -rw-r--r-- 1 root admin 263168 Nov 12 02:59 Desktop DB -rw-r--r-- 1 root admin 513346 Nov 11 05:45 Desktop DF drwxr-xr-x 2 gunjin unknown 68 Jul 30 10:50 Desktop Folder drwxrwxr-x 12 root admin 408 Nov 11 17:23 Developer drwxrwxr-x 35 root admin 1190 Nov 12 03:00 Library drwxr-xr-x 6 root wheel 204 Jul 28 23:30 Network drwxr-xr-x 2 gunjin unknown 68 Sep 30 01:09 Rangement au de??marrage drwxr-xr-x 6 root wheel 204 Nov 6 07:56 System drwxrwxrwx 3 gunjin staff 102 Sep 16 18:14 Temporary Items drwxr-xr-x 4 gunjin unknown 136 Sep 9 21:13 TheVolumeSettingsFolder drwxr-xr-x 2 gunjin unknown 68 Sep 19 18:40 Trash drwxrwxr-t 8 root wheel 272 Nov 8 11:40 Users drwxrwxrwt 7 root wheel 238 Nov 12 02:43 Volumes dr-xr-xr-x 1 root wheel 512 Nov 12 03:42 automount drwxr-xr-x 36 root wheel 1224 Nov 11 23:47 bin drwxrwxrwt 2 root wheel 68 Jul 14 08:20 cores dr-xr-xr-x 2 root wheel 512 Nov 11 23:59 dev lrwxrwxr-t 1 root admin 11 Nov 11 23:59 etc -> private/etc lrwxrwxr-t 1 root admin 9 Nov 11 23:59 mach -> /mach.sym -r--r--r-- 1 root admin 705904 Nov 11 23:59 mach.sym -rw-r--r-- 1 root wheel 3728752 Nov 6 07:01 mach_kernel drwxr-xr-x 6 root wheel 204 Nov 11 23:59 private drwxr-xr-x 60 root wheel 2040 Nov 11 23:48 sbin lrwxrwxr-t 1 root admin 11 Nov 11 23:59 tmp -> private/tmp drwxr-xr-x 11 root wheel 374 Jul 14 08:21 usr lrwxrwxr-t 1 root admin 11 Nov 11 23:59 var -> private/var La première ligne "total 10233" est l’espace disque utilisé par l’ensemble des fichiers du répertoire.
Le premier caractère des autorisations est un :
Ne vous inquiétez pas si le contenu de votre dossier racine diffère légèrement, mais les droits doivent être similaires. On peut donc changer toutes les autorisations d’un fichier d’un seul coup avec chmod, par exemple pour que tout le monde puisse lire et écrire le document (rw-rw-rw-). On tapera : On peut aussi ajouter des autorisations au groupe, à l’utilisateur ou à tout le monde : Retire le droit d’éditer le document au groupe, etc... On utilisera les syntaxes d’arguments u+ ? et a+ ? de chmod pour les droits de l’utilisateur et ceux de tout le monde.
On peut biensûr combiner les arguments de chmod par exemple :
Pour permettre à l’utilisateur et interdire au groupe de lire le fichier document. Si on veut changer les droits de tout un répertoire, on utilisera l’option -R (pour récursive). Les droits seront aussi appliqués au contenu du dossier, quel que soit le nombre de fichiers qu’il contient. Il vous sera souvent nécessaire de vous identifier comme administrateur pour modifier les autorisations des fichiers, en utilisant la commande sudo. Les modes et les permissions d’accès constituent l’un des aspect les plus complexes d’Unix, et donc de Mac OS X. Il convient donc de passer un peu de temps à étudier ce fonctionnement. Mais si toutefois cette gestion des droits via le Terminal vous semble encore un peu obscure, vous pouvez sans attendre lire l’article d’iBen Mac OS X et privilèges afin d’éffectuer ces opérations grâce à des outils disposants d’interfaces graphiques... |
||
Format rwx | Format Binaire | Format Décimal |
--- | 000 | 0 |
—x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r— | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |