Autorisations Unix

Les droits d’accés aux fichiers sous Mac OS X

La commande chmod
Première publication : 30 mai 2003.
Mise en ligne: 28 mai 2004.
Modifié le : 24 novembre 2006.
Par Frédéric Guerrier
Les droits d'accés aux fichiers sous Mac OS X, Mac, , OS X, , Terminal, , chmod, , Droits, , Autorisations, , Fichiers, , Fichier

Depuis Mac OS X, il faut bien l’avouer, un des problèmes les plus courant est bien la gestion des droits (1) d’accés aux fichiers. Il arrive en effet assez fréquement 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 un 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 arrassante 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 multi-tâ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 note en Anglais, la langue de l’informatique, read, write, execute :

-  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 :

Format rwxFormat BinaireFormat 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

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 cummuler 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’éxecution(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 :

C’est notre fichier mais les autres peuvent uniquement le lire :

-  rwx pour l’utilisateur,
-  r donc exécuter pour le group,
-  r donc exécuter pour le reste du monde

Donnera :

Tout pour soi, rien pour les autres, le fichier est privé :

-  rwx pour l’utilisateur,
-  rien pour le reste du monde

Se traduira par :

Gérer les droits

Passons 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 ls) 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.

-  1 ère colonne : Droits
-  2 ème colonne : Liens vers ce fichier
-  3 ème colonne : Possesseur
-  4 ème colonne : Groupe
-  5 ème colonne : Taille
-  6 ème colonne : Date de modification
-  7 ème colonne : Nom du fichier

Le premier caractère des autorisations est un :

-  - pour nous informer qu’il s’agit d’un fichier ordinaire.
-  d pour un répertoire (d pour directory).
-  l pour un lien symbolique (autrement dit un alias).
-  p pour un Pipe-line
-  s pour une prise réseau (socket)

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.

-  Si on remplace le + par un -, on supprimera les droits voulus à l’utilisateur, au groupe.
-  Si on remplace le + par un =, on donnera exactement les droits voulus à l’utilisateur, au groupe.

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...

 

Ou autorisations, ou privilèges.

Envoyer
L'e-mail du destinataire :

Votre Nom :

Votre e-mail :


 |  Imprimer |  Réagir
droits t à place de x ?
 le 24 mai 2005 - Menu du forum
 
que veut dire t à la place d’un x ? J’ai le problème suivant : j’ai créé deux partitions, une avec mes apllications, l’autre avec mes users. J’ai créé deux points de montage et créé deuax alias à la racine pointant sur les partitons/répertoires. Or ces ’alias’ sont indiqués comme des dossiers (d et pas l), mais possède un attribut t à la place du x. Je voudrais renommer ces ’alias’ (j’ai écris application et users sans majuscule et ça bloque unix), mais les modifs que j’effectue sont refusés. J’ai essayé en root de supprimer ces ’alias’ opu de les renommer : ne marche pas ! Pire encore si je demande rm dasn un terminal sur le dossier en question, il commence à m’effacer le contenu de ma partition ! Bref, j’ai besoin d’aide !
 
> Les droits d’accés aux fichiers sous Mac OS X
Par ac le 18 février 2005 - Menu du forum
 
super tout ça. Mais comment gerer (simplement) des groupes, y ajouter et retirer des utilisateurs ?
 
> Les droits d’accés aux fichiers sous Mac OS X
Par jroure le 6 septembre 2004 - Menu du forum
 

Quels doivent être les possesseurs, groupes et droits d’un répertoire et de ses fichiers sous Macos X pour qu’un script php puisse écrire, modifier et supprimer ?

Actuellement, je ne m’en sors pas alors qu’Apache et PHP tournent a priori normalement et savent exécuter les scripts, sauf quand il s’agit de modifier, supprimer, écrire.

Précision : quand je dépose les mêmes scripts chez free.fr, tout fonctionne. Par ailleurs, je dispose de batchmod pour tenter de modifier les droits, sans résultats concluants actuellement.

Merci pour votre aide.

 
> Les droits d’accés aux fichiers sous Mac OS X
Par Matthieu le 6 septembre 2004 - Menu du forum
 
En chmod 777 ça devrait aller. Ca signifie "lecture et écriture" pour tout le monde.. Je sais pas si tu peux faire mieux..
 
> Les droits d’accés aux fichiers sous Mac OS X
Par XD le 7 septembre 2004 - Menu du forum
 

Et en -R (c’est à dire récursif) à partir de ton dossier Sites/

La méthode bien porcas mais qui donne tous les droits sur ce dossier :

% sudo chmod -R 777 /Sites/

Là tu devrais plus avoir de soucis.

 
> Les droits d’accès aux fichiers sous Mac OS X
 le 11 septembre 2004 - Menu du forum
 

Excusez-moi d’être lourd, j’ai bien compris le 777, mais il convient encore d’indiquer le possesseur du répertoire et son groupe. Si je mets un 777 en tant que possesseur (User=moi) et groupe Staff par exemple, je ne parviens toujours pas à faire écrire PHP dans un fichier...

Que dois-je indiquer comme possesseur et comme groupe ?

Merci

 
jroure
 
> Les droits d’accés aux fichiers sous Mac OS X
Par Ali Baba le 31 mai 2004 - Menu du forum
 
Sous Mac OS X, les utilisateurs et groupes ne sont pas définis dans /etc/passwd et /etc/groups, mais dans la base de données NetInfo (accessible notamment avec l’utilitaire NetInfo Manager, fourni avec le système, ainsi qu’avec l’outil en ligne de commande niutil, lui aussi fourni avec le système).
 
> Les utilisateurs et groupes
Par Gunjin le 31 mai 2004 - Menu du forum
 

Bah je pense que tu confonds un peu le fond et la forme :)

NetInfo n’est pas une base de données !

C’est une interface graphique qui permet de lire et de modifier les fichiers de configuration de l’Unix d’Apple (il semble d’ailleur que ce logiciel sera abandonné sous peu).

Comme tout Unix, Mac OS X est configuré dans des fichiers, et pour les non-adeptes de la ligne de commande, Apple fourni pour le moment NetInfo Manager, héritage de NeXT.

J’en veux pour preuve l’exécution de ces deux lignes :


% cat /etc/passwd
et
% cat /etc/group

Les réglages que l’on peut voir dans NetInfo Manager sont stockés là en ce qui concerne les utilisateurs et les groupes.

@ + :)

 
> Les utilisateurs et groupes
Par Ali Baba le 2 juin 2004 - Menu du forum
 

Ah non désolé, pour le coup c’est toi qui confond. Je suis sûr de ce que je dis : les données utilisateur sont bien enregistrées dans la base de données NetInfo et l’interface graphique c’est le Gestionnaire NetInfo (NetInfo Manager en anglais). Faut pas tout confondre !

D’ailleurs si tu fais un

% cat /etc/passwd
tu verras bien que ton compte utilisateur n’y est pas !

Et il est faux de dire que dans tout Unix, tout est configuré dans des fichiers. Outre Mac OS X et NeXT qui utilisent NetInfo, il y a par exemple (notamment) Solaris qui utilise NIS. Sans compter LDAP, SMB, etc.

Et si tu ne me crois toujours pas, peut-être croiras-tu Apple ? "Like Mac OS X, NetInfo has a UNIX heritage. Much of what it manages is the same administrative data formerly kept in UNIX configuration files, but it consolidates the data and distributes it for ease of access and maintenance. In early UNIX systems, administrative information was stored in a collection of files located in the /etc directory. Every computer had its own set of these files, and processes read the files when they needed administrative information. If you’re experienced with UNIX, you’ll likely recall the files in the /etc directory-group, hosts, hosts.eq, passwd, and so forth." (cf. référence ci-dessous).

Je te conseille aussi de taper

% man 5 netinfo
ça devrait t’aider :-)

Faut pas raconter n’importe quoi ;-)

 
Understanding and Using NetInfo
 
> Les utilisateurs et groupes
Par Cyril Nocton le 8 novembre 2005 - Menu du forum
 

NetInfo combine plus précisément :

-  Une base de données hiérarchique
-  Un framework
-  Une librairie C
-  Des interfaces de commande Aqua et shell

Le moteur est de type DB (cf. /var/db/netinfo). Les fichiers /etc/passwd et /etc/group sont exploités en mode "single user".

 
> Les droits d’accés aux fichiers sous Mac OS X
Par iben le 30 mai 2004 - Menu du forum
 

Une petit logiciel free bien sympa qui permet de faire tout ça en mode visuel : chop.

 :)

 
> Les droits d’accés aux fichiers sous Mac OS X
Par raph36 le 1er juin 2004 - Menu du forum
 
ya il un freeware du meme genre ke chop pour 10.1.5 c trop lourd les problemes de privileges avec 10.1
 
> Freeware pour les droits d’accés
Par Gunjin le 1er juin 2004 - Menu du forum
 

Ouiiiiii, il existe BatChmod.

@+ :)

 
> Freeware pour les droits d’accés
Par tom1gozzy le 22 mai 2006 - Menu du forum
 

Bonjour, c’est bien beau tout ca, mais j’ai essayé tout le rmdir/ chmod 666 777 et autre -R -f +a +u +w et toutykonti....

Mais mon EM...FFFF....ÉÉÉ DE repertoire vide qui plus est !!!! et le terminal me répond constemment...Read only file system.......J’ai qu’une envie là, c’est mettre un pain de C4 DANS MON G5 ....

 
Copyright 2002-2017 xrings - Tous droits réservés - Mentions légales - Propulsé par SPIP - Webdesigner et référencement Frédéric Guerrier