48 votes

Comment fonctionnent les autorisations de fichiers ?

Pouvez-vous expliquer brièvement les principaux concepts et outils de ligne de commande utilisés pour gérer les autorisations de fichiers ?

44voto

Takkat Points 135194

Avertissement : La modification des permissions des fichiers et des répertoires est potentiellement dangereuse et peut rendre votre système inutilisable. Lorsqu'il est exécuté récursivement en tant que root sur un mauvais chemin, nous pouvons arriver à un point où nous devrons réinstaller Ubuntu. C'est donc une bonne idée de ne pas modifier les permissions en dehors des répertoires HOME, et l'exécution récursive des commandes en tant que root devrait être évitée dans la mesure du possible.

Autorisations de fichiers

Ubuntu a hérité du concept de permissions d'Unix. Pour les fichiers ou les répertoires, il y a trois tâches que l'on peut autoriser ou refuser :

  • r (lecture) le fichier/répertoire peut être ouvert en lecture.
  • w (écriture) le fichier/répertoire peut être ouvert pour un accès en écriture/édition.
  • x (exécuter) le fichier peut être exécuté comme un programme/répertoire peut être parcouru.

( Traversée un répertoire signifie essentiellement l'utiliser comme partie d'un nom de chemin. Voir https://unix.stackexchange.com/a/13891 ou https://unix.stackexchange.com/questions/21251 pour plus d'explications).

En outre, nous avons trois cas dans lesquels nous accordons une autorisation :

  • u (utilisateur) le propriétaire d'un fichier se voit accorder l'une ou l'autre des autorisations.
  • g (groupe) le groupe auquel appartient le fichier se voit accorder une autorisation.
  • o (autre) tous les autres bénéficient d'une autorisation.

Pour obtenir la combinaison de ces triages, nous utilisons un système binaire dans lequel chaque bit définit une autorisation. Le tableau suivant en est la meilleure illustration

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |       |       |       |
      w        |  010   |   2    |       |       |       |
      x        |  001   |   1    |       |       |       |
    =======================================================
    Number

Maintenant, si nous voulons par exemple

a) le propriétaire d'un fichier (= l'utilisateur) a r ead, w rite, et e x ecute l'autorisation,
b) le groupe du dossier accordé r ead et e x les autorisations d'écrêtage, et
c) tous les autres ne devraient avoir que r ead access.

L'autorisation de fichier résultante sera alors :

 u   g   o
rwx r-x r--

Pour l'obtenir dans les nombres octaux, par exemple pour le chmod ou lorsque nous devons comprendre un message d'erreur, nous devons remplir le tableau ci-dessus comme suit :

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |   4   |   4   |   4   |
      w        |  010   |   2    |   2   |   0   |   0   |
      x        |  001   |   1    |   1   |   1   |   0   |
    ======================================================
    Numbers add to                   7       5       4     

Chaque numéro d'autorisation doit être additionné pour obtenir le total pour un utilisateur (4+2+1=7), un groupe (4+0+1=5) et un autre (4+0+0=4). Le nombre obtenu est donc le suivant :

 u   g   o
 7   5   4

Nous avons maintenant deux options pour modifier les bits de permission avec chmod :

chmod u+rwx g+rx o+r filename

ou beaucoup plus simplement avec

chmod 751 filename

Les deux commandes auront le même effet.

L'autorisation par défaut d'un fichier nouvellement créé dans notre foyer sera de 664 (-rw-rw-r--).

Si nous voulons que les fichiers soient exécutables en tant que programmes, nous devons modifier cette autorisation.

  • Notez que nous devrons également modifier les permissions du répertoire dans lequel se trouve cet exécutable. Ce n'est que si les deux autorisations du fichier y le bit exécutable du répertoire est activé, nous serons autorisés à exécuter ce fichier en tant que programme.

  • Lorsqu'un fichier est copié chez nous, il perd ses autorisations, qui sont remplacées par nos propres autorisations par défaut (sauf si nous effectuons la copie à l'aide d'options avancées, par exemple une option d'archivage).

  • Notez également que les fichiers peuvent hériter de la permission de leur point de montage, ou de leurs options de montage. Ceci est important lors du montage de lecteurs formatés Windows qui ne supportent pas les permissions Unix.

Utilisateurs et groupes

Nous nous rendons vite compte que ce n'était que la moitié de l'histoire. Il faut aussi trier les affaires. Pour ce faire, chaque fichier ou dossier a un propriétaire défini et une appartenance à un groupe défini.

Chaque fois que nous créons un fichier, nous en sommes le propriétaire et le groupe du fichier est également le nôtre. Avec ls -l nous pouvons voir les permissions, la propriété et le groupe comme le montre l'exemple suivant :

-rw-rw-r--  1 takkat takkat    4096 Sep 12 20:25 test
  • Nous ne pouvons modifier les autorisations, les groupes ou la propriété d'un fichier que s'il nous appartient.

Si nous ne sommes pas le propriétaire du fichier, nous recevrons un Permission denied erreur. Seul l'administrateur peut modifier ce paramètre pour tous les fichiers. C'est pourquoi nous devons utiliser sudo lors de l'édition des permissions de fichiers qui ne sont pas les nôtres. Il existe deux commandes pour ce faire chown pour les utilisateurs et les groupes et chgrp pour les groupes uniquement.

Pour changer la propriété d'un fichier de quelqu'un à un utilisateur takkat et, éventuellement, le groupe takkat nous pouvons émettre cette commande :

sudo chown takkat[:takkat] testfile

Pour modifier uniquement le groupe d'un fichier en takkat nous émettons

sudo chgrp takkat testfile

Lisez les pages de manuel des commandes pour plus de détails et d'options. Il existe également un guide plus élaboré recommandé pour une lecture plus approfondie :

Vous trouverez également des questions connexes ici :

29voto

Tom Points 5872

Chaque dossier comporte des droits pour trois catégories différentes :

  • le propriétaire du fichier,
  • le groupe associé au fichier, et
  • tous les autres.

Les droits signifient le droit de lire le fichier, le droit d'écrire dans le fichier ou le droit d'exécuter le fichier dans le cas d'un script ou d'un programme.

Sur le CLI, vous pouvez

  • changer le propriétaire avec chown , par exemple chown guillermooo
  • changer le groupe avec chgrp , par exemple chgrp root
  • modifier les droits avec chmod , par exemple chmod u+w filename.ext (Ajout d'une autorisation d'écriture pour le propriétaire du fichier) filename.ext )

Si vous souhaitez en savoir plus sur chacun de ces outils, ouvrez un terminal et tapez man [tool] , par exemple man chmod .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X