GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

L'une des premières commandes que j'ai apprises sur Linux était le touch commande qui crée un fichier à l'aide de la ligne de commande.

Si jamais vous essayez de créer, par exemple, un fichier texte, tout ce que vous avez à faire est de taper touch filename.txt , appuyez sur Entrée, et le fichier est créé pour vous dans le répertoire où vous vous trouvez. Vous pouvez alors y écrire ce que vous voulez en utilisant l'éditeur de fichier de votre choix.

Cependant, lorsqu'il s'agit de créer des scripts, les choses peuvent devenir un peu plus compliquées. Pourquoi donc?

Laissez-moi essayer de vous montrer cela avec un autre exemple. Supposons que vous souhaitiez créer un script à l'aide de touch. Tapez touch example.sh , appuyez sur Entrée, et voilà. Une fois de plus, vous pouvez y écrire à l'aide d'un éditeur de fichiers.

Avec tout prêt, il ne reste plus qu'à le tester. Vous tapez ./sample.sh et appuyez sur Entrée pour voir votre script en action et… mais que me dit ce message ?

Pourquoi avons-nous besoin d'autorisations ?

je suis l'administrateur ! Comment se fait-il que je n'ai pas la permission d'exécuter un script que j'ai écrit il y a quelques secondes ?

Il y a en fait une raison à cela - et, pour être honnête, la plupart des utilisateurs devraient en être reconnaissants, car ne pas pouvoir exécuter des scripts sans savoir ce que vous faites vous empêche souvent de mettre votre système en danger.

Discutons d'abord rapidement des autorisations. Ensuite, nous découvrirons comment les modifier.

Afin d'obtenir plus d'informations sur votre fichier, nous allons utiliser la commande qui liste les fichiers dans un répertoire :ls .

Après avoir tapé ls et en appuyant sur Entrée, voici ce que nous obtenons dans la ligne de commande :

Ce qu'il fait, c'est lister tous les fichiers visibles dans le répertoire où vous vous trouvez en ce moment. En ajoutant le drapeau -l à celui-ci, il vous fournit plus d'informations sur les fichiers du répertoire. Voici le résultat lorsque nous tapons ls -l et appuyez sur Entrée :

Nous voyons le(s) même(s) fichier(s), mais avec beaucoup d'informations devant lui/eux. Pour commencer, nous avons une séquence de dix tirets et lettres qui peuvent sembler vides de sens au premier abord. Il s'agit en fait du mappage des autorisations dont dispose votre fichier.

Le premier caractère peut être un tiret (- , pour un fichier commun), un d (pour un répertoire), ou un l (pour un lien symbolique). Par souci de simplicité, je me concentrerai sur les fichiers simples, bien que les autorisations soient valables pour tous ces types de fichiers/dossiers.

Après le premier caractère, les 9 autres peuvent être divisés en groupes de trois. Le premier trio affiche les autorisations de l'utilisateur actuel. Le suivant montre les autorisations pour ce groupe. Les trois derniers sont les autorisations pour tous les utilisateurs qui ne rentrent pas dans cette catégorie.

Pour notre explication, concentrons-nous sur les trois premières autorisations, puisque nous n'allons pas changer de groupe ou quoi que ce soit du genre.

Le premier trio dit rw- .

Il est temps de comprendre de quoi il s'agit. Il y a trois choses que vous pouvez normalement faire avec un fichier :le lire, y écrire et l'exécuter. C'est, fondamentalement, ce que signifient ces lettres.

Le premier r représente l'autorisation de lecture. Alors nous avons w pour l'autorisation d'écriture. Enfin, un tiret, signifiant que tout ce qui devrait être là n'est pas. Ce qui devrait être là est un x , signifiant eXecutable.

Donc, en parlant de l'utilisateur actuel (moi), les autorisations que j'ai pour ce fichier sont les autorisations de lecture et d'écriture. Je ne peux cependant pas exécuter le sample.sh dossier. C'est pourquoi, en essayant d'exécuter le fichier, j'ai reçu ce message "autorisation refusée".

Comment puis-je alors exécuter ce fichier ? C'est là que le chmod commande entre en jeu.

Que fait chmod ?

Eh bien, j'ai mentionné les "autorisations" depuis le début de l'article. Élargissons un peu cette explication pour dire qu'il s'agit de 'permissions d'accéder à un fichier dans un certain mode . Cela signifie que r désigne l'autorisation d'accéder au fichier en mode lecture, w indique l'autorisation d'accéder au fichier en mode écriture, et x indique l'autorisation d'accéder au fichier en mode exécutable.

Pourquoi est-ce que je te dis ça ? En raison de la commande, cet article est tout au sujet. chmod signifie 'modifier le mode'. En d'autres termes, lorsque vous utilisez cette commande, vous modifiez le mode d'un fichier pour le mode que vous souhaitez utiliser.

Comment utiliser les opérateurs avec cmod

Il est nécessaire d'utiliser un opérateur avec la commande chmod. Il sert à spécifier le type de changement que vous souhaitez effectuer sur les autorisations.

Par exemple, + est l'opérateur que vous utilisez pour ajouter une autorisation à celles que le fichier possède déjà. - supprime une autorisation de la liste. Il y a aussi le = opérateur, qui réinitialise les autorisations afin que vous puissiez les définir à nouveau.

Dans notre cas, en tapant chmod -w sample.sh , ce que je demande à la commande de faire, c'est de supprimer l'autorisation d'écriture. Donc, ce que je devrais faire pour ajouter l'autorisation exécutable, c'est de taper chmod +x sample.sh .

Si j'essaie maintenant d'exécuter le fichier, tout ce que j'ai mis dans le script va maintenant être exécuté.

Utilisation de ls -l , c'est ce que j'aurais maintenant.

Qui obtient l'autorisation ?

Une autre chose qui mérite d'être soulignée est qui obtient cette autorisation. Vous verrez que le 'x' est attribué à tous les utilisateurs, propriétaires de fichiers, groupes et autres. Si ce n'est pas ce que vous recherchez, peut-être est-il judicieux de supprimer à nouveau l'autorisation exécutable avec chmod -x sample.sh .

Afin d'activer l'autorisation uniquement pour le propriétaire du fichier (moi, dans ce cas), nous devrions ajouter un 'u' avant le '+x', comme ceci :

chmod u+x sample.sh

Taper ls -l , c'est ce que vous avez :

Si vous vouliez donner l'autorisation au propriétaire et à son groupe, la commande serait chmod ug+x sample.sh .

Génial! Je pense que cela couvre ce que je voudrais vous montrer. Il y a d'autres choses qui pourraient vous intéresser, comme comment utiliser chmod avec des valeurs octales ou binaires pour représenter les permissions. Mais ce sont des modes que nous utilisons pour obtenir les mêmes résultats et je pense que les lettres sont un moyen plus simple d'obtenir ces résultats.

Au cas où vous voudriez plus d'informations sur la commande, une chose que vous pouvez faire est de taper chmod --help , qui vous donnera un briefing sur ce que la commande peut faire. Une description encore plus détaillée peut être obtenue en tapant man chmod .

J'espère que cet article vous a été utile. Pour plus d'articles sur les commandes Linux, consultez freecodecamp.org/news.

Bon codage ! 😃


Linux
  1. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  2. Comment modifier les autorisations et les propriétaires via la ligne de commande

  3. Comment changer le mot de passe sous Linux (commande passwd)

  4. Autorisations Linux :une introduction à chmod

  5. Linux chmod et chown - Comment modifier les autorisations et la propriété des fichiers sous Linux

Commande Chown sous Linux (modifier la propriété du fichier)

Comment modifier les autorisations sous Linux

Commande Chmod sous Linux

Apprendre l'utilisation de la commande chmod (changer de mode) sous Linux

Comment modifier les autorisations de fichier

Exemples de commandes Linux chmod