4Jul

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 "permissions".Mais que sont-ils exactement, et pourquoi sont-ils nécessaires ou utiles? Prenons un regard intérieur.

Autorisations utilisateur

De retour dans la journée, les ordinateurs étaient des machines massives incroyablement coûteuses. Pour en tirer le meilleur parti, de multiples terminaux informatiques ont été raccordés, ce qui a permis à de nombreux utilisateurs de travailler simultanément. Le traitement et le stockage des données ont été effectués sur la machine, tandis que les terminaux eux-mêmes n'étaient guère plus qu'un moyen de visualisation et de saisie des données. Si vous y réfléchissez, c'est à peu près la façon dont nous accédons aux données sur le «nuage»;Regardez le système MP3 Cloud d'Amazon, Gmail et Dropbox, et vous remarquerez que même si les modifications peuvent être effectuées localement, tout est stocké à distance.

( Image: Zenith Z-19 "terminal muet" crédit: ajmexico)

Pour que cela fonctionne, les utilisateurs individuels doivent avoir des comptes. Ils ont besoin d'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 d'utilisateur» spécifiques, qui dictent ce qu'ils peuvent et ne peuvent pas faire, où sur le système ils ont et n'ont pas accès, et dont ils peuvent et ne peuvent pas modifier les fichiers. Chaque utilisateur est également placé dans divers groupes, qui accordent ou restreignent l'accès supplémentaire.

File Access

Dans ce monde multi-utilisateur farfelu, nous avons déjà défini des limites quant à ce que les utilisateurs peuvent faire. Mais qu'en est-il de ce qu'ils ont accès? Eh bien, chaque fichier a un ensemble d'autorisations et un propriétaire. La désignation du propriétaire, généralement liée lorsque le fichier est créé, 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 "en lecture" permet d'afficher le contenu d'un fichier, l'accès "en é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 tout le monde 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 pas les personnes extérieures à votre groupe. Vous voudrez probablement limiter l'accès "en écriture" à vous-même, sauf si vous travaillez sur un projet partagé quelconque. Vous pouvez également créer un répertoire partagé permettant à quiconque d'afficher et de modifier les fichiers de ce dossier.

Modification des permissions dans Ubuntu

GUI

Pour modifier les permissions d'un fichier que vous possédez dans Ubuntu, faites un clic droit sur le fichier et allez dans "Propriétés".

Vous pouvez changer si le propriétaire, le groupe ou les autres peuvent lire et écrire,lire seulement, ou ne rien faire. Vous pouvez également cocher une case pour permettre l'exécution du fichier, ce qui l'activera pour le propriétaire, le groupe et les autres simultanément.

Command-Line

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-

L' signifie "read", l' w signifie "write", et l' x signifie "execute". Les répertoires commencent 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 deuxième 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 le formulaire de base de la commande chmod.

chmod [classe] [opérateur] [permission] fichier

chmod [ugoa] [+ ou -] [rwx] fichier

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

  • u: C'est pour le propriétaire.
  • g: Ceci est pour le groupe.
  • o: Ceci est pour tous les autres.
  • a: Cela va changer les permissions 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.

Toujours 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 choses ensemble. Disons que nous avons un fichier nommé "todo.txt" qui a les permissions 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 changer les permissions pour celles-ci:

-rwxr--

C'est-à-dire, le propriétaire a des permissions complètes, et le groupe peut lire. Nous pouvons le faire en 3 étapes. Nous allons d'abord ajouter l'autorisation d'exécution pour l'utilisateur.

chmod u + x todo.txt

Ensuite, nous allons supprimer l'autorisation d'écriture pour le groupe.

chmod g-w todo.txt

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

chmod o-r todo.txt

On peut aussi les combiner en une seule commande, comme ceci:

chmod + x, g-w, o-r todo.txt

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

Voici quelques permissions utiles:

  • -rwxr-xr-x: Le propriétaire a toutes les permissions, le groupe et les autres utilisateurs peuvent lire le contenu du fichier et l'exécuter.
  • -rwxr-r-: Le propriétaire a les autorisations complètes, le groupe et les autres utilisateurs peuvent seulement lire le fichier( utile si les autres utilisateurs ne voient pas vos fichiers
  • -rwx--: Le propriétaire a toutes les permissions, tous les autres n'en ont pas( utile
  • -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 peuvent seulementlire le fichier( 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 avecchmod - comme setuid et setgid - mais ils sont un peu en profondeur 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èmesavoir des utilisateurs multiples Pourquoi devrions-nous toujours nous inquiéter des permissions?

Eh bien, Unix etses dérivés - Linux, OS X, entre autres - font également la distinction entre les choses exécutées par l'utilisateur, celles qui sont exécutées par un administrateur ou avec les privilèges d'administrateur, et celles qui sont exécutées 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 à modifier ou à accéder. De cette façon, vous ne dérangez 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 les autres distributions, vous passez à "root" ou au "super-utilisateur" qui fait effectivement la même chose jusqu'à ce que vous vous déconnectiez.

Soyez conscient que dans ces deux cas, changer les autorisations de fichiers peut empêcher les programmes de fonctionner, changer involontairement la propriété des fichiers à l'utilisateur root( et non le 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 sécurité de base parmi les utilisateurs. Apprendre comment ils fonctionnent peut vous aider à configurer le partage de base dans un environnement multi-utilisateur, protéger les fichiers «publics» et vous donner une idée de la situation en cas de problème avec la propriété des fichiers système.

Pensez-vous pouvoir expliquer les choses plus facilement? Avoir une correction? Vous voulez vous souvenir des vieux jours? Faites une pause et mettez vos pensées dans les commentaires.