Ce qui différencie Linux de Windows en termes d'exécution de fichiers, c'est que le premier système définit les fichiers exécutables comme des fichiers de programme non pas par leur extension, mais par un drapeau d'exécutabilité spécial. Chaque fichier possède donc trois modes d'exécution : lecture, exécution et écriture. Ce sont ces modes qui déterminent ce que le système peut faire avec un fichier particulier. Lorsqu'un utilisateur télécharge divers programmes d'installation sur l'internet ou crée un script, les modes suivants lui sont attribués par défaut : lecture et écriture. En résumé, l'utilisateur ne pourra rien faire avec un tel programme, car il faut faire quelque chose d'autre avec.
Mais avant toute chose, il convient de répondre à la question suivante : qu'est-ce que l'exécutabilité et qu'est-ce que cela signifie en général ? Commençons par un programme, qui est un ensemble d'instructions exécutées par un processeur sur un ensemble de données afin d'obtenir le résultat souhaité. Pour le processeur, il n'y a pas de différence entre les instructions et les données.
Les premières comme les secondes sont constituées de chiffres - des octets. C'est-à-dire qu'une certaine combinaison de chiffres indiquera au processeur la nécessité d'effectuer une action particulière. Pour le processeur, il n'y a pas de différence fondamentale quant au processus à exécuter - des données du système d'exploitation ou un fichier texte. Le premier et le second seront tous deux exécutés, sauf que dans le cas d'un fichier texte, le besoin d'instructions est en fait éliminé.
Les drapeaux d'exécutabilité ont été inventés pour permettre au système de comprendre quelles instructions doivent être exécutées et lesquelles ne doivent pas l'être. En fait, le contenu ne change en rien en fonction de la classe d'exécutabilité définie - la différence se résume à quelques lignes. Avec les scripts, tout fonctionne de la même manière, seules les commandes sont exécutées non pas par le processeur, mais par un interpréteur, par exemple, dans les scripts bash - par le shell bash lui-même. Les programmes réguliers ont également leur propre chargeur - il s'agit de ld-linux.so.2.
Le système Linux dispose d'un utilitaire spécial permettant de gérer les drapeaux, appelé chmod
. Pour appeler cet utilitaire, vous devez invoquer la syntaxe :
$ chmod category action flag file_address
Il faut alors tenir compte de ce qui suit :
Drapeau - l'un des drapeaux disponibles -
r
(lecture),w
(écriture),x
(exécution).Catégorie - peut être définie pour trois catégories : le propriétaire du fichier, le groupe de données et tous les autres utilisateurs. Dans la commande, elles sont indiquées respectivement par
u
(utilisateur),g
(groupe) eto
(autre).Action - peut être + (plus), ce qui signifie que l'indicateur est activé, ou - (moins), ce qui signifie que l'indicateur est désactivé.
Ainsi, pour qu'un script soit exécutable sous Linux, l'utilisateur doit l'exécuter :
$ chmod u+x file_address
Souvent, cela suffit déjà à le rendre exécutable, mais si d'autres utilisateurs doivent être autorisés à exécuter ces fichiers, il faut en ajouter d'autres :
$ chmod ugo+x file_address
Pour les voir dans le terminal, il suffit d'utiliser l'utilitaire ls :
$ ls -l file_directory
Des drapeaux sont inclus pour toutes les catégories. Les premiers rwx
sont des drapeaux de propriétaire, les seconds sont des drapeaux de groupe et les troisièmes sont pour tous les autres. S'il n'est pas défini, un tiret le remplace.
Il est très facile de désactiver le drapeau exécutable. La même commande est utilisée, mais avec le signe moins :
$ chmod u-x file_address
Examinons maintenant la question de la configuration de la gérabilité dans l'interface graphique.
Pour les débutants, cette instruction sera plus facile. Prenons l'exemple du gestionnaire GNOME, Nautilus. Cliquez avec le bouton droit de la souris sur notre programme ou notre objet script pour ouvrir le menu contextuel, puis sélectionnez Propriétés :
Allez dans l'onglet permissions et cochez "Autoriser le fichier à s'exécuter en tant que programme" :
Il sera alors lancé par le système directement depuis le gestionnaire. C'est là toute l'instruction. Désormais, vous n'aurez plus aucune difficulté à lancer un programme ou un script à partir d'Internet.