Comment fonctionnent les autorisations de fichiers Linux?
Si vous utilisez Linux depuis un certain temps (et même sous OS X), vous aurez probablement rencontré une erreur «autorisations». Mais que sont-ils exactement et pourquoi sont-ils nécessaires ou utiles? Regardons de l'intérieur.
Autorisations utilisateur
À l'époque, les ordinateurs étaient des machines énormes et incroyablement chères. Pour en tirer le meilleur parti, plusieurs terminaux informatiques ont été raccordés, ce qui a permis à de nombreux utilisateurs d’exercer leurs activités simultanément. Le traitement et le stockage des données s'effectuaient sur la machine, tandis que les terminaux eux-mêmes n'étaient rien de plus qu'un moyen de visualisation et de saisie des données. Si vous y réfléchissez, c'est en quelque sorte notre façon d'accéder aux données sur le «nuage»; Si vous examinez le système Cloud MP3 d'Amazon, Gmail et Dropbox, vous remarquerez que, même si des modifications peuvent être apportées localement, tout est stocké à distance..
(Image: Zenith Z-19 “terminal bête”; crédit: ajmexico)
Pour que cela fonctionne, les utilisateurs individuels doivent avoir des comptes. Ils doivent disposer d'une section de la zone de stockage qui leur est affectée et ê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 ou ne peut pas faire, à quel endroit du système il a ou n'a pas accès et les fichiers qu'il peut ou ne peut pas modifier. Chaque utilisateur est également placé dans différents groupes, qui accordent ou restreignent d'autres accès..
Accès au fichier
Dans ce monde multi-utilisateur loufoque, nous avons déjà défini des limites quant à ce que les utilisateurs peuvent faire. Mais qu'en est-il de ce qu'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, indique à quel utilisateur il appartient et seul cet utilisateur peut modifier ses autorisations d'accès..
Dans le monde Linux, les autorisations sont réparties en trois catégories: lecture, écriture et exécution. L'accès «en lecture» permet de visualiser le contenu d'un fichier, l'accès en «écriture» permet de modifier le contenu d'un fichier et «exécuter» en permettant 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 personnel, 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é qui permet à quiconque de visualiser et de modifier les fichiers de ce dossier..
Changer les permissions dans Ubuntu
Interface graphique
Pour modifier les autorisations d'un fichier que vous possédez dans Ubuntu, cliquez dessus avec le bouton droit de la souris et accédez à «Propriétés».
Vous pouvez indiquer si le propriétaire, le groupe ou les autres peuvent lire et écrire, lire uniquement ou ne rien faire. Vous pouvez également cocher une case pour autoriser l'exécution du fichier, ce qui l'activera simultanément pour le propriétaire, le groupe et les autres..
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 de la liste:
ls -al
À côté de chaque fichier et répertoire, vous verrez une section spéciale décrivant les autorisations dont il dispose. Cela ressemble à ceci:
-rwxrw-r-
le r signifie «lire», le w signifie «écrire» et le X signifie "exécuter". 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 jeux de 3. Le premier jeu est destiné au propriétaire, le second jeu est destiné au groupe et le dernier jeu est destiné au monde..
Pour modifier les autorisations d'un fichier ou d'un répertoire, examinons la forme 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. Tout d'abord, regardons les classes:
- u: Ceci 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 autorisations qui suivent.
Encore avec moi? Et la dernière section est la même que lorsque nous avons vérifié les autorisations d’un fichier:
- r: Permet l'accès en lecture.
- w: Permet l'accès en écriture.
- x: permet l'exécution.
Maintenant, mettons-le 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 sur celles-ci:
-rwxr-
Autrement dit, le propriétaire dispose de toutes les autorisations et le groupe peut lire. Nous pouvons le faire en 3 étapes. Tout d'abord, nous allons 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
Nous pouvons également les combiner en une seule commande, comme suit:
chmod u + x, g-w, o-r 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 de toutes les autorisations, le groupe et les autres utilisateurs peuvent lire le contenu du fichier et s'exécuter.
- -rwxr-r-: le propriétaire dispose de toutes les autorisations, le groupe et les autres utilisateurs ne peuvent lire que les fichiers (utile si les autres personnes consultent vos fichiers).
- -rwx-: le propriétaire dispose de 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, les groupes 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 aucun (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 plus en profondeur et la plupart des utilisateurs n'auront pas vraiment besoin de les utiliser de toute façon..
La racine ou le super-utilisateur et les fichiers système
De nos jours, nous n'exécutons pas toujours des systèmes qui ont plusieurs utilisateurs. Pourquoi devrions-nous encore nous préoccuper des autorisations??
Eh bien, Unix et ses dérivés - Linux, OS X, entre autres - distinguent également les éléments gérés par l'utilisateur, ceux gérés par un administrateur ou dotés de privilèges administrateur, et les éléments gérés par le système lui-même. En tant que tels, les éléments essentiels au système nécessitent la modification ou l’accès aux privilèges d’administrateur. De cette façon, vous ne perdez rien accidentellement.
Dans Ubuntu, pour modifier les fichiers système, 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 la même chose jusqu'à ce que vous vous déconnectiez..
Sachez que, dans ces deux circonstances, la modification des autorisations de fichiers peut entraîner des problèmes de fonctionnement des programmes, modifier involontairement la propriété des fichiers au profit de l'utilisateur racine (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..
Des autorisations de fichiers sont en place pour fournir un système de base de sécurité aux 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 des problèmes éventuels liés à la propriété des fichiers système..
Pensez-vous pouvoir expliquer les choses plus facilement? Avoir une correction? Voulez-vous vous souvenir de l'ancien temps? Faites une pause et commentez vos commentaires.