GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rendre un fichier exécutable dans un terminal Linux ?

Chaque fichier qui se trouve dans un système de fichiers compatible POSIX (Ext4, Btrfs, XFS, JFS, etc.) a des "bits de mode" qui lui sont attribués.

Pour rendre un fichier exécutable sous Linux, le bit de mode exécutable doit être activé.

Pour définir le bit de mode exécutable, la commande chmod est utilisée comme ceci :

chmod u+x <file>

Avec cela, vous pouvez exécuter ledit fichier depuis le terminal :

./file

C'était le résumé rapide. Voyons les choses un peu en détail.

Rendre un fichier exécutable sous Linux

Il existe plusieurs façons de rendre un fichier exécutable sous Linux. Les méthodes les plus courantes consistent à utiliser le chmod commande, de différentes manières.

Pour vérifier si vous pouvez exécuter un fichier, utilisez le -l drapeau avec ls commande.

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

Dans la première colonne, -rw-r--r-- signifie que le propriétaire peut lire et écrire, que les utilisateurs du groupe ne peuvent que lire et que tous les autres ne peuvent que lire le fichier.

Notez l'absence de x à partir des symboles d'autorisation. Cela signifie que lhb.txt n'est pas exécutable.

Je vous recommande vivement de lire sur les autorisations de fichiers Linux et de réviser vos bases pour mieux comprendre ces commandes.

Méthode 1 :Rendre le fichier exécutable pour tout le monde

La première méthode, et la plus simple, consiste à rendre un fichier exécutable à l'aide de la commande suivante :

chmod +x <file>

Le x flag est de définir ou de désactiver l'autorisation exécutable d'un fichier. Et en utilisant + signe avant x signifie que nous voulons le définir comme un fichier exécutable.

Cela rendra le fichier exécutable pour le propriétaire, le groupe et tous les autres. N'importe qui sur le système pourra également l'exécuter.

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod +x lhb.txt

$ ls -l lhb.txt
-rwxr-xr-x  1 pratham  staff  0 Mar 10 20:49 lhb.txt

Comme vous pouvez le voir maintenant, tout le monde, le propriétaire, le groupe et les autres ont l'exécutable x jeu de bits. Cela signifie que tout le monde peut exécuter ce fichier maintenant.

Méthode 2 :Rendre le fichier exécutable uniquement pour certains utilisateurs ou groupes

Si vous ne voulez pas que tout le monde puisse exécuter un fichier, vous devez spécifier des classes avant d'ajouter/supprimer des autorisations de fichier.

Les cours disponibles sont :

  • u  :autorisations pour le propriétaire/utilisateur
  • g  :autorisations pour le groupe
  • o  :autorisations pour les autres
  • a  :autorisations pour tout le monde

Lorsque vous spécifiez une classe, la syntaxe est essentiellement similaire à celle que vous avez vue dans la première méthode.

chmod <class>+x <file>

Cela signifie que si je veux rendre le fichier exécutable de manière à ce que seul le propriétaire du fichier puisse l'exécuter, et personne d'autre, je dois utiliser la commande suivante :

chmod u+x <file>

Voici un exemple :

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod u+x lhb.txt

$ ls -l lhb.txt
-rwxr--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

De même, pour le rendre exécutable pour tout le monde dans le groupe propriétaire de ce fichier, je dois utiliser la commande suivante :

chmod g+x <file>

Voici un exemple :

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod g+x lhb.txt
$ ls -l lhb.txt
-rw-r-xr--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

Lorsque vous spécifiez le a classe, c'est presque comme si vous n'en spécifiiez aucune. Jetons un coup d'œil.

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod +x lhb.txt

$ ls -l lhb.txt
-rwxr-xr-x  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod 644 lhb.txt #reset permissions

$ chmod a+x lhb.txt

$ ls -l lhb.txt
-rwxr-xr-x  1 pratham  staff  0 Mar 10 20:49 lhb.txt

Ces commandes peuvent apparaître différemment, mais elles ont le même résultat.

Méthode 3 :Utiliser les nombres octaux

Si vous suivez la première méthode, vous activez uniquement le drapeau exécutable d'un fichier en faisant un +x , ce qui permet à n'importe qui de l'exécuter.

Mais, parfois, vous ne voudrez peut-être pas que tout le monde exécute un fichier, peut-être qu'il devrait avoir besoin de certains privilèges. Dans ce cas, vous pouvez spécifier l'ensemble complet des autorisations.

Cela se fait généralement en fournissant une valeur octale ou une valeur symbolique pour activer les autorisations de fichiers.

Cela vous permet d'avoir un contrôle plus précis sur la façon dont les drapeaux sont définis. Vous trouverez ci-dessous la syntaxe d'utilisation des valeurs octales avec chmod commande :

chmod <octal> <file>

Si vous n'êtes pas bon avec les chiffres, vous pouvez utiliser une calculatrice chmod en ligne, qui vous aide à générer des valeurs octales correctes et ainsi éviter d'utiliser la mauvaise valeur et de gâcher les autorisations de fichiers.

Supposons que je souhaite rendre le fichier exécutable uniquement pour le propriétaire et le groupe, je dois d'abord connaître ses autorisations actuelles et y ajouter les bits exécutables à l'aide de [chmod-calculator].

Voyons comment procéder.

$ ls -l lhb.txt
-rw-r--r--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

$ chmod 754 lhb.txt

$ ls -l lhb.txt
-rwxr-xr--  1 pratham  staff  0 Mar 10 20:49 lhb.txt

Comme vous pouvez le voir, seuls le propriétaire et le groupe peuvent exécuter le fichier.

Conclusion

Cet article explique comment rendre un fichier exécutable dans un système Linux. Il s'est principalement concentré sur les différentes façons d'utiliser le chmod commande. Si vous voulez en savoir plus, nous avons quelques exemples sur la façon d'utiliser le chmod commande.


Linux
  1. Comment rendre le fichier et le répertoire ineffaçables, même par racine sous Linux

  2. Comment gérer les capacités des fichiers Linux

  3. Comment trouver un fichier sous Linux

  4. Comment imprimer un fichier JSON dans un terminal Linux

  5. Comment rendre le fichier clairsemé?

Comment rendre un fichier exécutable sous Linux

Comment vérifier la somme de contrôle sur Linux

Comment installer le gestionnaire de fichiers du terminal Ranger sur Linux

Comment créer un fichier sous Linux à l'aide de Terminal

Comment créer un lien symbolique vers un fichier sous Linux

Comment copier des fichiers et des répertoires dans un terminal Linux