Comment utiliser la commande chmod sous Linux

Contrôlez qui peut accéder aux fichiers, rechercher des répertoires et exécuter des scripts à l’aide du système Linux chmod commander. Cette commande modifie les autorisations de fichiers Linux, qui semblent compliquées à première vue mais sont en fait assez simples une fois que vous savez comment elles fonctionnent.

chmod modifie les autorisations de fichier

Sous Linux, qui peut faire quoi sur un fichier ou un répertoire est contrôlé par des ensembles d’autorisations. Il existe trois ensembles d’autorisations. Un ensemble pour le propriétaire du fichier, un autre ensemble pour les membres du groupe du fichier et un ensemble final pour tous les autres.

Les autorisations contrôlent les actions qui peuvent être effectuées sur le fichier ou le répertoire. Ils permettent ou empêchent un fichier d’être lu, modifié ou, s’il s’agit d’un script ou d’un programme, exécuté. Pour un annuaire, les permissions gouvernent qui peut cd dans le répertoire et qui peut créer ou modifier des fichiers dans le répertoire.

Vous utilisez le chmod commande à définir chacune de ces autorisations. À voir quelles autorisations ont été définies sur un fichier ou un répertoire, nous pouvons utiliser ls.

Affichage et compréhension des autorisations de fichiers

Nous pouvons utiliser le -l (format long) option pour avoir ls lister les autorisations de fichiers pour les fichiers et les répertoires.

ls -l

Sur chaque ligne, le premier caractère identifie le type d’entrée répertorié. Si c’est un tiret (-) c’est un fichier. Si c’est la lettre d c’est un annuaire.

Les neuf caractères suivants représentent les paramètres des trois ensembles d’autorisations.

  • Les trois premiers caractères indiquent les autorisations de l’utilisateur propriétaire du fichier (autorisations utilisateur).
  • Les trois caractères du milieu indiquent les autorisations des membres du groupe du fichier (autorisations de groupe).
  • Les trois derniers caractères indiquent les autorisations de toute personne n’appartenant pas aux deux premières catégories (autres autorisations).

Il y a trois caractères dans chaque ensemble d’autorisations. Les caractères sont des indicateurs de la présence ou de l’absence de l’une des autorisations. Ils sont soit un tiret (-) ou une lettre. Si le caractère est un tiret, cela signifie que l’autorisation n’est pas accordée. Si le personnage est un r, w, ou un x, cette autorisation a été accordée.

Les lettres représentent:

  • r: Lire les autorisations. Le fichier peut être ouvert et son contenu affiché.
  • w: Autorisations d’écriture. Le fichier peut être édité, modifié et supprimé.
  • X: Exécuter les autorisations. Si le fichier est un script ou un programme, il peut être exécuté (exécuté).

Par exemple:

  • --- signifie qu’aucune autorisation n’a été accordée du tout.
  • rwx signifie que toutes les autorisations ont été accordées. Les indicateurs de lecture, d’écriture et d’exécution sont tous présents.

Dans notre capture d’écran, la première ligne commence par un d. Cette ligne fait référence à un répertoire appelé «archive». Le propriétaire du répertoire est «dave» et le nom du groupe auquel appartient le répertoire est également appelé «dave».

Les trois caractères suivants sont les autorisations utilisateur pour ce répertoire. Celles-ci montrent que le propriétaire dispose des autorisations complètes. Le r, w, et x les personnages sont tous présents. Cela signifie que l’utilisateur dave dispose des autorisations de lecture, d’écriture et d’exécution pour ce répertoire.

Le deuxième jeu de trois caractères correspond aux autorisations de groupe, ce sont r-x. Ceux-ci montrent que les membres du groupe dave ont des autorisations de lecture et d’exécution pour ce répertoire. Cela signifie qu’ils peuvent lister les fichiers et leur contenu dans le répertoire, et ils peuvent cd (exécuter) dans ce répertoire. Ils ne disposent pas des autorisations d’écriture et ne peuvent donc pas créer, modifier ou supprimer des fichiers.

En relation :  Top 13 des choses à savoir sur la fonction de co-visionnage sur le chat vidéo Instagram que vous devez savoir

Le dernier ensemble de trois caractères est également r-x. Ces autorisations s’appliquent aux personnes qui ne sont pas régies par les deux premiers ensembles d’autorisations. Ces personnes (appelées «autres») ont des droits de lecture et d’exécution sur ce répertoire.

Donc, pour résumer, les membres du groupe et d’autres ont des autorisations de lecture et d’exécution. Le propriétaire, un utilisateur appelé Dave, dispose également des autorisations d’écriture.

Pour tous les autres fichiers (à l’exception du fichier de script mh.sh), dave et les membres du groupe dave ont des propriétés de lecture et d’écriture sur les fichiers, et les autres ont des autorisations de lecture uniquement.

Dans le cas particulier du fichier de script mh.sh, le propriétaire dave et les membres du groupe ont des autorisations de lecture, d’écriture et d’exécution, et les autres ont des autorisations de lecture et d’exécution uniquement.

Comprendre la syntaxe des autorisations

Utiliser chmod pour définir les autorisations, nous devons lui dire:

  • Qui: Pour qui nous définissons les autorisations.
  • Quoi: Quel changement faisons-nous? Ajoutons-nous ou supprimons-nous l’autorisation?
  • Lequel: Laquelle des autorisations définissons-nous?

Nous utilisons des indicateurs pour représenter ces valeurs et formons de courtes «instructions d’autorisations» telles que u+x, où «u» signifie «utilisateur» (qui), «+» signifie ajouter (quoi) et «x» signifie l’autorisation d’exécution (qui).

Les valeurs «qui» que nous pouvons utiliser sont:

  • u: Utilisateur, c’est-à-dire le propriétaire du fichier.
  • g: Groupe, c’est-à-dire les membres du groupe auquel appartient le fichier.
  • o: Autres, c’est-à-dire les personnes non gouvernées par le u et g autorisations.
  • une: Tout, c’est-à-dire tout ce qui précède.

Si aucun de ceux-ci n’est utilisé, chmod se comporte comme si « a”Avait été utilisé.

Les «quelles» valeurs que nous pouvons utiliser sont:

  • : Signe moins. Supprime l’autorisation.
  • +: Signe plus. Accorde la permission. L’autorisation est ajoutée aux autorisations existantes. Si vous souhaitez avoir cette autorisation et uniquement cet ensemble d’autorisations, utilisez le = option, décrite ci-dessous.
  • =: Signe égal. Définissez une autorisation et supprimez les autres.

Les «quelles» valeurs que nous pouvons utiliser sont:

  • r: L’autorisation de lecture.
  • w: L’autorisation d’écriture.
  • X: L’autorisation d’exécution.

Définition et modification des autorisations

Disons que nous avons un fichier sur lequel tout le monde dispose des autorisations complètes.

ls -l new_ file.txt

Nous voulons que l’utilisateur dave ait des autorisations de lecture et d’écriture et que le groupe et les autres utilisateurs aient uniquement des autorisations de lecture. Nous pouvons le faire en utilisant la commande suivante:

chmod u=rw,og=r new_file.txt

L’utilisation de l’opérateur «=» signifie que nous effaçons toutes les autorisations existantes, puis définissons celles spécifiées.

vérifions la nouvelle autorisation sur ce fichier:

ls -l new_file.txt

Les autorisations existantes ont été supprimées et les nouvelles autorisations ont été définies, comme prévu.

Que diriez-vous d’ajouter une permission sans pour autant supprimer les paramètres d’autorisations existants? Nous pouvons le faire aussi facilement.

Disons que nous avons un fichier de script que nous avons terminé de modifier. Nous devons le rendre exécutable pour tous les utilisateurs. Ses autorisations actuelles ressemblent à ceci:

ls -l new_script.sh

Nous pouvons ajouter l’autorisation d’exécution pour tout le monde avec la commande suivante:

chmod a+x new_script.sh

Si nous examinons les autorisations, nous verrons que l’autorisation d’exécution est désormais accordée à tout le monde et que les autorisations existantes sont toujours en place.

ls -l new_script.sh

En relation :  Comment savoir si quelqu'un vous a bloqué sur Instagram

Nous aurions pu réaliser la même chose sans le «a» dans l’instruction «a + x». La commande suivante aurait tout aussi bien fonctionné.

chmod +x new_script.sh

Définition des autorisations pour plusieurs fichiers

Nous pouvons appliquer des autorisations à plusieurs fichiers à la fois.

Voici les fichiers du répertoire courant:

ls -l

Disons que nous voulons supprimer les autorisations de lecture pour les «autres» utilisateurs des fichiers qui ont une extension «.page». Nous pouvons le faire avec la commande suivante:

chmod o-r *.page

Vérifions quel effet cela a eu:

ls -l

Comme nous pouvons le voir, l’autorisation de lecture a été supprimée des fichiers «.page» pour la catégorie «autre» d’utilisateurs. Aucun autre fichier n’a été affecté.

Si nous avions voulu inclure des fichiers dans des sous-répertoires, nous aurions pu utiliser le -R (récursive) option.

chmod -R o-r *.page

Sténographie numérique

Une autre façon d’utiliser chmod consiste à fournir les autorisations que vous souhaitez donner au propriétaire, au groupe et à d’autres sous la forme d’un numéro à trois chiffres. Le chiffre le plus à gauche représente les autorisations du propriétaire. Le chiffre du milieu représente les autorisations des membres du groupe. Le chiffre le plus à droite représente les autorisations pour les autres.

Les chiffres que vous pouvez utiliser et ce qu’ils représentent sont répertoriés ici:

  • 0: (000) Aucune permission.
  • 1: (001) Exécuter l’autorisation.
  • 2: (010) Autorisation d’écriture.
  • 3: (011) Droits d’écriture et d’exécution.
  • 4: (100) Autorisation de lecture.
  • 5: (101) Autorisations de lecture et d’exécution.
  • 6: (110) Droits de lecture et d’écriture.
  • 7: (111) Droits de lecture, d’écriture et d’exécution.

Chacune des trois autorisations est représentée par l’un des bits de l’équivalent binaire du nombre décimal. Donc 5, qui est 101 en binaire, signifie lire et exécuter. 2, qui est 010 en binaire, signifierait l’autorisation d’écriture.

En utilisant cette méthode, vous définissez les autorisations que vous souhaitez avoir; vous n’ajoutez pas ces autorisations aux autorisations existantes. Donc, si les autorisations de lecture et d’écriture étaient déjà en place, vous devrez utiliser 7 (111) pour ajouter des autorisations d’exécution. L’utilisation de 1 (001) supprimerait les autorisations de lecture et d’écriture et ajouterait l’autorisation d’exécution.

Ajoutons l’autorisation de lecture sur les fichiers «.page» pour les autres catégories d’utilisateurs. Nous devons également définir les autorisations des utilisateurs et des groupes, nous devons donc les définir sur ce qu’elles sont déjà. Ces utilisateurs ont déjà des autorisations de lecture et d’écriture, soit 6 (110). Nous voulons que les «autres» aient la lecture et les autorisations, ils doivent donc être définis sur 4 (100).

La commande suivante accomplira ceci:

chmod 664 *.page

Cela définit les autorisations dont nous avons besoin pour l’utilisateur, les membres du groupe et autres selon ce dont nous avons besoin. Les utilisateurs et les membres du groupe ont leurs autorisations réinitialisées à ce qu’elles étaient déjà, et les autres ont la permission de lecture restaurée.

ls -l

Options avancées

Si tu lire la page de manuel pour chmod vous verrez qu’il y a quelques options avancées liées aux bits SETUID et SETGID, et à la suppression restreinte ou bit «sticky».

Pour 99% des cas dont vous aurez besoin chmod pour, les options décrites ici vous couvriront.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.