in

Comment fonctionnent les autorisations de fichiers Linux?

Si vous utilisez Linux depuis un certain temps (et même OS X), vous aurez probablement rencontré une erreur de «permissions». Mais que sont-ils exactement et pourquoi sont-ils nécessaires ou utiles? Jetons un coup d’œil à l’intérieur.

Autorisations utilisateur

À l’époque, les ordinateurs étaient des machines massives qui étaient incroyablement chères. Pour en tirer le meilleur parti, plusieurs terminaux informatiques ont été connectés, ce qui a permis à de nombreux utilisateurs de vaquer à leurs occupations simultanément. Le traitement et le stockage des données se faisaient sur la machine, tandis que les terminaux eux-mêmes n’étaient guère plus qu’un moyen de visualiser et de saisir des données. Si vous y réfléchissez, c’est à peu près comment nous accédons aux données sur le «cloud»; Regardez le système Cloud MP3 d’Amazon, Gmail et Dropbox, et vous remarquerez que même si les modifications peuvent être apportées localement, tout est stocké à distance.

(Image: terminal «stupide» Zenith Z-19; crédit: ajmexico)

Pour que cela fonctionne, les utilisateurs individuels doivent avoir des comptes. Ils doivent avoir une section de la zone de stockage qui leur est allouée, et ils doivent être autorisés à exécuter des commandes et des programmes. Tout le monde obtient des «autorisations utilisateur» spécifiques, qui dictent ce qu’il peut et ne peut pas faire, où sur le système il a accès et n’y a pas accès, et dont il peut et ne peut pas modifier les fichiers. Chaque utilisateur est également placé dans divers groupes, qui accordent ou restreignent l’accès supplémentaire.

Accès aux fichiers

Dans ce monde multi-utilisateurs loufoque, nous avons déjà défini les limites de ce que les utilisateurs peuvent faire. Mais qu’en est-il de ce à quoi ils accèdent? Eh bien, chaque fichier a un ensemble d’autorisations et un propriétaire. La désignation du propriétaire, généralement liée lors de la création du fichier, déclare à quel utilisateur il appartient et seul cet utilisateur peut modifier ses autorisations d’accès.

Dans le monde de Linux, les autorisations sont réparties en trois catégories: lecture, écriture et exécution. L’accès «lecture» permet de visualiser le contenu d’un fichier, l’accès «écriture» permet de modifier le contenu d’un fichier et «exécuter» permet d’exécuter un ensemble d’instructions, comme un script ou un programme. Chacune de ces catégories est appliquée à différentes classes: utilisateur, groupe et monde. «Utilisateur» signifie le propriétaire, «groupe» signifie tout utilisateur qui est dans le même groupe que le propriétaire, et «monde» signifie n’importe qui et tout le monde.

Les dossiers peuvent également être restreints avec ces autorisations. Vous pouvez, par exemple, autoriser d’autres personnes de votre groupe à afficher les répertoires et les fichiers de votre dossier de départ, mais aucune personne en dehors de votre groupe. Vous voudrez probablement limiter l’accès «en écriture» à vous-même, à moins que vous ne travailliez sur un projet partagé quelconque. Vous pouvez également créer un répertoire partagé qui permet à quiconque d’afficher et de modifier les fichiers de ce dossier.

Modification des autorisations dans Ubuntu

GUI

Pour modifier les autorisations d’un fichier que vous possédez dans Ubuntu, cliquez simplement avec le bouton droit sur le fichier et allez dans «Propriétés».

Vous pouvez modifier si le propriétaire, le groupe ou les autres peuvent lire et écrire, en lecture seule ou ne rien faire. Vous pouvez également cocher une case pour autoriser l’exécution du fichier, ce qui l’activera pour le propriétaire, le groupe et les autres simultanément.

Ligne de commande

Vous pouvez également le faire via la ligne de commande. Accédez à un répertoire contenant des fichiers et tapez la commande suivante pour afficher tous les fichiers dans une liste:

ls -al

À côté de chaque fichier et répertoire, vous verrez une section spéciale qui décrit les autorisations dont il dispose. Cela ressemble à ceci:

-rwxrw-r–

La r signifie «lire», le w signifie «écrire» et le X signifie «exécuter». Les répertoires commenceront par un «d» au lieu d’un «-». Vous remarquerez également qu’il y a 10 espaces qui ont une valeur. Vous pouvez ignorer le premier, puis il y a 3 ensembles de 3. Le premier ensemble est pour le propriétaire, le second ensemble est pour le groupe et le dernier ensemble est pour le monde.

Pour modifier les permissions d’un fichier ou d’un répertoire, regardons la forme de base de la commande chmod.

chmod [class][operator][permission] fichier

chmod [ugoa][+ or –] [rwx] fichier

Cela peut sembler compliqué au début, mais croyez-moi, c’est assez facile. Tout d’abord, regardons les classes:

  • u: C’est pour le propriétaire.
  • g: Ceci est pour le groupe.
  • o: C’est pour tous les autres.
  • a: Cela modifiera les autorisations pour tout ce qui précède.

Ensuite, les opérateurs:

  • +: Le signe plus ajoutera les permissions qui suivent.
  • -: Le signe moins supprimera les permissions qui suivent.

Encore avec moi? Et la dernière section est la même que lorsque nous avons vérifié les permissions d’un fichier:

  • r: autorise l’accès en lecture.
  • w: autorise l’accès en écriture.
  • x: permet l’exécution.

Maintenant, mettons-les ensemble. Disons que nous avons un fichier nommé «todo.txt» qui a les autorisations suivantes:

-rw-rw-r–

Autrement dit, le propriétaire et le groupe peuvent lire et écrire, et le monde ne peut que lire. Nous voulons modifier les autorisations pour celles-ci:

-rwxr—–

Autrement dit, le propriétaire dispose des autorisations complètes et le groupe peut lire. Nous pouvons le faire en 3 étapes. Tout d’abord, nous ajouterons l’autorisation d’exécution pour l’utilisateur.

chmod u + x todo.txt

Ensuite, nous supprimerons l’autorisation d’écriture pour le groupe.

chmod gw todo.txt

Enfin, nous supprimerons les autorisations de lecture pour tous les autres utilisateurs.

chmod ou todo.txt

Nous pouvons également les combiner en une seule commande, comme ceci:

chmod u + x, gw ou todo.txt

Vous pouvez voir que chaque section est séparée par des virgules et qu’il n’y a pas d’espaces.

Voici quelques autorisations utiles:

  • -rwxr-xr-x: le propriétaire dispose des autorisations complètes, le groupe et les autres utilisateurs peuvent lire le contenu du fichier et l’exécuter.
  • -rwxr – r–: le propriétaire dispose des autorisations complètes, le groupe et les autres utilisateurs ne peuvent lire que le fichier (utile si cela ne vous dérange pas que les autres visualisent vos fichiers.
  • -rwx——: Le propriétaire a toutes les autorisations, tous les autres n’en ont aucune (utile pour les scripts personnels).
  • -rw-rw—-: Le propriétaire et le groupe peuvent lire et écrire (utile pour la collaboration avec les membres du groupe).
  • -rw-r – r–: Le propriétaire peut lire et écrire, le groupe et les autres utilisateurs ne peuvent lire que des fichiers (utile pour stocker des fichiers personnels sur un réseau partagé).
  • -rw ——-: Le propriétaire peut lire et écrire, tous les autres n’en ont pas (utile pour stocker des fichiers personnels).

Il y a quelques autres choses que vous pouvez faire avec chmod – comme setuid et setgid – mais elles sont un peu approfondies et la plupart des utilisateurs n’auront pas vraiment besoin de les utiliser de toute façon.

Les fichiers racine ou super-utilisateur et système

De nos jours, nous n’exécutons pas toujours des systèmes qui ont plusieurs utilisateurs. Pourquoi devrions-nous encore nous soucier des autorisations?

Eh bien, Unix et ses dérivés – Linux, OS X, entre autres – font également la distinction entre les éléments gérés par l’utilisateur, les éléments gérés par un administrateur ou avec des privilèges d’administrateur et les éléments gérés par le système lui-même. En tant que tel, les éléments qui font partie intégrante du système nécessitent des privilèges d’administrateur pour être modifiés ou accessibles. De cette façon, vous ne gâchez rien accidentellement.

Dans Ubuntu, pour apporter des modifications aux fichiers système, vous utilisez «sudo» ou «gksudo» pour obtenir l’équivalent des privilèges d’administrateur. Dans d’autres distributions, vous passez à «root» ou au «super-utilisateur» qui fait effectivement la même chose jusqu’à ce que vous vous déconnectiez.

Sachez que dans ces deux circonstances, la modification des autorisations de fichiers peut empêcher les programmes de fonctionner, modifier involontairement la propriété du fichier en l’utilisateur root (au lieu du propriétaire) et rendre le système moins sécurisé (en accordant plus d’autorisations). En tant que tel, il est recommandé de ne pas modifier les autorisations pour les fichiers, en particulier les fichiers système, sauf si cela est nécessaire ou si vous savez ce que vous faites.

Les autorisations de fichier sont en place pour fournir un système de base de sécurité parmi les utilisateurs. L’apprentissage de leur fonctionnement peut vous aider à configurer le partage de base dans un environnement multi-utilisateurs, à protéger les fichiers «publics» et à vous donner une idée des problèmes liés à la propriété des fichiers système.

Pensez-vous pouvoir expliquer les choses plus facilement? Vous avez une correction? Envie de vous remémorer le bon vieux temps? Faites une pause et mettez vos pensées dans les commentaires.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment désactiver les suggestions Siri sur l'écran de verrouillage de votre iPhone

Comment désactiver les suggestions Siri sur l’écran de verrouillage de votre iPhone

Comment «répéter» quelqu'un pendant 30 jours sur Facebook

Comment «répéter» quelqu’un pendant 30 jours sur Facebook