
Exemple concret 2 : Rendre un script personnel exécutable
Apprenez à rendre un script shell personnel exécutable sous Linux en utilisant la commande `chmod`. Un cas pratique essentiel pour automatiser vos tâches.
Mettre en pratique `chmod` : l'exécution de scripts
L'une des applications les plus courantes et immédiates de la gestion des permissions, en particulier de la commande chmod, est de rendre un script exécutable. Les scripts (shell, Python, Perl, etc.) sont des séquences de commandes sauvegardées dans un fichier, conçues pour automatiser des tâches. Pour que le système puisse exécuter directement un fichier comme un script, ce fichier doit avoir la permission d'exécution (x) pour l'utilisateur qui tente de le lancer.
Par défaut, lorsque vous créez un nouveau fichier texte (par exemple, avec un éditeur de texte ou la commande touch), il n'a généralement pas la permission d'exécution. Cet exemple concret va vous montrer les étapes pour créer un script shell très simple et le rendre exécutable par son propriétaire.
Cela illustrera comment les concepts de permissions que nous venons de voir s'appliquent directement à des tâches quotidiennes et comment chmod est l'outil clé pour cela.
Etapes pour créer et rendre un script exécutable
1. Créer le fichier du script :Commençons par créer un fichier nommé mon_script.sh. Nous allons utiliser un éditeur de texte simple comme nano pour y mettre un contenu basique. Si vous n'êtes pas familier avec nano, vous pouvez utiliser touch mon_script.sh pour créer un fichier vide, puis l'éditer avec l'éditeur de votre choix.
nano mon_script.shDans l'éditeur nano, tapez les lignes suivantes :
#!/bin/bash
# Mon premier script
echo "Bonjour, le monde de Linux !"
echo "La date actuelle est : $(date)"Expliquons brièvement ce script :
#!/bin/bash: C'est le "shebang". Il indique au système quel interpréteur utiliser pour exécuter ce script (ici, Bash). C'est une convention très importante pour les scripts.# Mon premier script: Les lignes commençant par#sont des commentaires, ignorés par l'interpréteur.echo "Bonjour, le monde de Linux !": Affiche le message à l'écran.echo "La date actuelle est : $(date)": Affiche la date actuelle.$(date)est une substitution de commande qui exécute la commandedateet insère sa sortie.
Pour sauvegarder et quitter nano :
- Appuyez sur Ctrl + X.
- Il vous demandera "Sauvegarder le tampon modifié ?" (ou similaire). Appuyez sur O (ou Y si votre système est en anglais).
- Il confirmera le nom du fichier (
mon_script.sh). Appuyez sur Entrée.
Maintenant que le fichier est créé, regardons ses permissions par défaut :
ls -l mon_script.shLa sortie ressemblera probablement à ceci (les détails exacts du propriétaire, groupe, date peuvent varier) :
-rw-r--r-- 1 utilisateur utilisateur 85 mai 25 11:30 mon_script.shNotez la partie -rw-r--r--. Le propriétaire (utilisateur) a les droits de lecture (r) et d'écriture (w), mais pas d'exécution (x). Les membres du groupe et les autres ont seulement le droit de lecture.
Si vous essayez d'exécuter ce script directement en tapant son nom (précédé de ./ pour indiquer qu'il se trouve dans le répertoire courant) :
./mon_script.shVous obtiendrez probablement une erreur du type :
bash: ./mon_script.sh: Permission non accordéeC'est parce que le bit d'exécution n'est pas positionné.
(Note : vous pourriez exécuter le script en le passant explicitement à l'interpréteur, comme bash mon_script.sh. Dans ce cas, la permission d'exécution sur le fichier lui-même n'est pas requise, seulement la permission de lecture. Mais ce n'est pas la manière standard d'exécuter un script autonome.)
Nous voulons que le propriétaire (vous) puisse exécuter ce script. Nous utilisons donc chmod pour ajouter (+) la permission d'exécution (x) pour l'utilisateur propriétaire (u) :
chmod u+x mon_script.shAlternativement, si vous voulez utiliser le mode octal et que les permissions actuelles sont 644 (rw-r--r--), pour ajouter l'exécution au propriétaire, vous voulez passer à 744 (rwxr--r--) :
chmod 744 mon_script.shPour un script personnel, il est courant de se donner tous les droits et de ne rien donner ou seulement la lecture/exécution aux autres, par exemple chmod 755 mon_script.sh (rwxr-xr-x) ou chmod 700 mon_script.sh (rwx------) si vous êtes le seul à devoir l'exécuter.
Regardons à nouveau les permissions :
ls -l mon_script.shSi vous avez utilisé chmod u+x mon_script.sh sur des permissions initiales de rw-r--r--, la sortie devrait maintenant être :
-rwxr--r-- 1 utilisateur utilisateur 85 mai 25 11:30 mon_script.shOu si vous avez utilisé chmod 755 mon_script.sh :
-rwxr-xr-x 1 utilisateur utilisateur 85 mai 25 11:30 mon_script.shLe x est maintenant présent dans le triplet de permissions du propriétaire (et potentiellement pour le groupe et les autres si vous avez utilisé 755).
Maintenant, vous devriez pouvoir exécuter le script directement :
./mon_script.shLa sortie devrait être :
Bonjour, le monde de Linux !
La date actuelle est : ven. mai 25 11:35:00 CEST 2024(La date et l'heure seront celles de votre exécution.)
Cet exemple simple illustre le cycle complet : création d'un fichier, vérification des permissions, tentative d'exécution échouée due à l'absence de permission, modification des permissions avec chmod, et enfin exécution réussie. C'est un processus que vous répéterez souvent si vous écrivez vos propres scripts pour automatiser des tâches sous Linux.