ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

[[droits]]

Piste: » droits


Droits d'accès sous Linux : gérer les accès aux fichiers

Les systèmes d'exploitation inspirés d'Unix (dont Linux fait partie) possèdent la capacité de définir de façon poussée la gestion de droits d'accès aux divers fichiers de votre OS.

Les droits d'accès définissent la possession d'un fichier ou d'un répertoire1) à un utilisateur et à un groupe d'utilisateurs. Ils gèrent aussi quelles actions les utilisateurs ont le droit d'effectuer sur les fichiers, selon qu'ils sont propriétaire du fichier, membre du groupe propriétaire du fichier ou ni l'un ni l'autre. La possession et la gestion des permissions associées s'effectue individuellement avec chaque fichier.

Les sections "Les propriétaires" et "Les permissions" expliquent de façon générale ce que sont ces attributs auxquels vous devrez faire face dans votre vie linuxienne. Notez que ce document présente, dans les sections "Changer les propriétaires" et "Changer les permissions", des moyens de modifier la propriété et les permissions d'un fichier à l'aide de la ligne de commande. Certaines de ces opérations peuvent être accomplies de manière graphique à l'aide de votre gestionnaire de fichiers préféré (Nautilus, Konqueror, Thunar, etc.).

Les propriétaires

Par la propriété d'un fichier, on désigne à quel utilisateur appartient le fichier, qui le possède. À partir de cette possession (ou non), il sera ensuite possible de définir des permissions d'accès sur le fichier.

La possession d'un fichier se définit sur trois niveaux :

  1. Le premier est le propriétaire du fichier. C'est l'utilisateur à qui appartient le fichier.
  2. Le second niveau est le groupe propriétaire du fichier. Si un utilisateur est membre d'un certain groupe qui possède la propriété d'un fichier, l'utilisateur aura aussi certaines permissions particulières sur ce fichier.
  3. Le troisième niveau est les autres, le reste du monde. Bref, tout un chacun n'étant ni propriétaire du fichier, ni membre du groupe propriétaire du fichier.

Faisons une analogie avec les voitures. Le propriétaire serait la personne à qui est immatriculée la voiture. Le groupe propriétaire est l'ensemble des personnes qui sont inscrites en tant que conducteurs secondaires de la voiture chez l'assureur. Enfin, les autres correspond à toutes les autres personnes n'étant ni détenteur de l'immatriculation ni inscrites en tant que conducteurs de la voiture chez l'assureur.

Certains logiciels ont besoin de pouvoir écrire dans des fichiers particuliers pour bien fonctionner, et cet accès est autorisé en fonction de l'inclusion ou non d'un utilisateur dans un groupe de membres précis. C'est le cas entre autre (mais pas exclusivement) de Virtualbox. Pour savoir comment gérer l'inclusion ou l'exclusion d'un utilisateur à un groupe d'utilisateurs, référez-vous au document traitant de la gestion des comptes utilisateurs sous Ubuntu.

Changer les propriétaires

chown, pour le propriétaire

La commande chown (change owner, changer le propriétaire) permet de changer le propriétaire du fichier. Seuls le super-utilisateur ou le propriétaire actuel d'un fichier peut utiliser chown. La commande s'utilise de la façon suivante :

~$ chown nouveau_propriétaire nom_du_fichier
Quand l'utilisateur actuel n'est pas le propriétaire actuel du fichier, il sera nécessaire de faire précéder la commande par sudo, puisqu'elle devra être effectuée avec les droits d'administration.

Imaginons un fichier foo.txt possédé par utilisateur1. La propriété de ce fichier doit passer à utilisateur2. En étant connecté au compte utilisateur1, l'exécution de cette commande passera la propriété de fichier.txt à utilisateur2 :

~$ chown utilisateur2 foo.txt

chgrp, pour le groupe propriétaire

Pour changer le groupe propriétaire, la commande à utiliser est chgrp (change group, changer le groupe). Encore une fois, seuls le super-utilisateur ou le propriétaire actuel d'un fichier peut utiliser chgrp (un membre du groupe ne peut pas changer le groupe propriétaire). La commande s'utilise de la façon suivante :

~$ chgrp nouveau_groupe_propriétaire nom_du.fichier
Quand l'utilisateur actuel n'est pas le propriétaire actuel du fichier, il sera nécessaire de faire précéder la commande par sudo, puisqu'elle devra être effectuée avec les droits d'administration.

Imaginons le même fichier foo.txt possédé par utilisateur1. La propriété de groupe de ce fichier doit passer au groupe groupe2. En étant connecté au compte utilisateur1, l'exécution de cette commande passera la propriété de groupe de foo.txt à groupe2 :

~$ chgrp groupe2 foo.txt

chown, pour changer simultanément le propriétaire et le groupe propriétaire

Pour changer à la fois le propriétaire et le groupe propriétaire, une syntaxe particulière de la commande chown peut être utilisée. Encore une fois, seuls le super-utilisateur ou le propriétaire actuel d'un fichier peut utiliser chown (un membre du groupe ne peut pas effectuer de changement de propriété). La commande s'utilise de la façon suivante :

~$ chown nouveau_propriétaire:nouveau_groupe_propriétaire nom_du.fichier
Quand l'utilisateur actuel n'est pas le propriétaire actuel du fichier, il sera nécessaire de faire précéder la commande par sudo, puisqu'elle devra être effectuée avec les droits d'administration.

Imaginons le même fichier foo.txt possédé par utilisateur1 et appartenant au groupe propriétaire groupe1. Le propriétaire doit devenir utilisateur2 et la propriété de groupe de ce fichier doit passer au groupe groupe2. En étant connecté au compte utilisateur1, l'exécution de cette commande effectuera l'opération demandée :

~$ chown utilisateur2:groupe2 foo.txt

chown ou chmod : lequel dois-je utiliser ?

On observe souvent dans le forum des demandes d'aide concernant l'accès restreint à des fichiers : comment en ouvrir l'accès à son utilisateur ? Trop fréquemment, la réponse se résume à un automatique chmod 777 sur le fichier, ou encore un chown identifiant:identifiant. Pourtant, comme nous l'avons vu, chown et chmod ont des buts différents : le premier modifie les propriétaires d'un fichier, alors que le second modifie les permissions sur ce fichier. Lequel préférer ? La réponse est aussi simple qu'elle ne l'est pas : ça dépend de ce que vous entendez faire avec votre fichier !

Pour illustrer notre propos, imaginons un fichier foo.txt appartenant à l'utilisateur 'root' et au groupe 'root'. Ce fichier a le mode 420 (soit lecture seule pour le propriétaire, écriture seule pour le groupe propriétaire et aucun accès pour le reste du monde).

  • Avec uniquement chown, le propriétaire d'un fichier est changé, mais les permissions sur ce fichier sont maintenues. Exécutons la commande suivante :
    ~$ sudo chown toto foo.txt

    L'utilisateur 'toto' devient désormais le propriétaire du fichier. 'toto' a maintenant accès en lecture seule à ce fichier (puisque les permissions pour le propriétaire du fichier sont limitées à la lecture seule pour le propriétaire du fichier). Les permissions ne sont pas modifiées.

  • Avec uniquement chmod, les permissions d'un fichier sont modifiées, mais les propriétaire et groupe propriétaire sont maintenus. Exécutons la commande suivante :
    ~$ sudo chmod ug+rw foo.txt
    ~$ sudo chmod o+r foo.txt

    Le propriétaire du fichier et le groupe propriétaire du fichier disposent désormais de l'accès en lecture et écriture sur le fichier foo.txt, et le reste du monde y a accès en lecture seule. L'utilisateur 'toto' n'a donc accès qu'en lecture au fichier, puisqu'il n'est ni le propriétaire ('root') ni membre du groupe propriétaire (groupe 'root') ; il n'a donc que les accès du reste du monde.

Gné??? Allons-y plus simplement avec un comportement typique ;-) :

  1. Si un fichier ou dossier contient des informations relativement sensibles ou privées, utilisez conjointement chown et chmod pour régler des propriétaires adéquats et des permissions qui ne permettent pas l'accès total au fichier.
  2. Si un fichier ou dossier ne contient que de l'information généraliste ou publique, autorisez simplement l'accès en lecture, écriture et exécution au fichier avec chmod et ne vous préoccupez pas des propriétaires.

Contributeurs : AlexandreP, Ner0lph, Sbrunner

1) Dans la suite de ce document, nous n'emploierons plus que le terme « fichier ». De toute façon, c'est bien connu : sous *nix, tout est fichiers... Un répertoire est traité de la même façon qu'un fichier.

droits.txt · Dernière modification: Le 13/05/2008, à 13:52 par 192.168.1.138, 202.123.15.90
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL