Le script qui ne veut pas se lancer
Tu écris un petit script, tu tapes son nom et la machine répond : permission refusée. C'est toi qui l'as écrit et il est à toi. La machine refuse quand même, car sous Linux chaque fichier dit qui peut le lire, qui peut le modifier et qui peut l'exécuter.
À la fin de cette leçon
Remarque
Je peux changer qui a le droit d'exécuter un fichier et supprimer des fichiers avec précaution.
Mots-clés
- Droit : ce qui dit qui peut lire, modifier ou exécuter un fichier.
- Propriétaire : l'utilisateur à qui appartient un fichier.
- Groupe : une liste nommée d'utilisateurs qui partagent des fichiers.
- Script : un fichier de commandes que la machine exécute pour toi.
Pour commencer : ce que tu sais déjà
Remarque
Réponds dans ta tête. 1. Quelle commande affiche le dossier où tu es ? 2. Quel signe met des mots dans un fichier en remplaçant ce qu'il contenait ? 3. Quelle est la différence entre un fichier et un dossier ?
Avant de commencer
Remarque
Appuie sur Démarrer le lab dans la barre en haut de cette leçon. Ce lab est une machine Ubuntu entière, rien que pour toi : elle met un peu plus de temps à démarrer qu'un conteneur. Chaque bouton Exécuter tape sa commande dans le terminal de la machine, l'une après l'autre, dans la même session. Si l'un d'eux dit que la machine démarre encore, attends quelques secondes et appuie de nouveau. Quand la leçon dit Tape ceci, la commande ne se termine pas toute seule ou te pose une question : appuie sur Ouvrir le terminal dans la barre et tape-la toi-même.
Un nouveau fichier ne peut pas encore s’exécuter
La première colonne de ls -l donne les droits. Après le premier caractère viennent trois groupes de rwx : ce que le propriétaire, le groupe et tous les autres peuvent lire (r), écrire (w) et exécuter (x). Un nouveau fichier n'a pas de x, donc le premier ./hello.sh est refusé. chmod +x ajoute le droit de l'exécuter, et au deuxième essai tu vois it works.
cdAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
echo 'echo it works' > hello.shAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
ls -l hello.shAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
./hello.shAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
chmod +x hello.shAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
ls -l hello.shAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
./hello.shAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Vérifie
Astuce
Dans -rw-r--r--, qui peut écrire dans le fichier ? Réponse : seulement le propriétaire. Le groupe et tous les autres peuvent seulement le lire.
Supprimer ce dont tu n’as plus besoin
rm supprime un fichier. rm -rf supprime un dossier et tout ce qu'il contient, sans rien demander. Le dossier scratch a été fait pour que tu y supprimes des choses, et la dernière commande n'affiche rien, car il est vide maintenant.
rm scratch/old.logAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
rm -rf scratch/cacheAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
ls scratchAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une erreur fréquente
Attention
Beaucoup de gens croient qu'un fichier supprimé va dans une corbeille et qu'on peut le récupérer, comme sur un téléphone ou un bureau. Sur un serveur, rm est définitif : le fichier a disparu. Avant rm -rf, lance pwd et ls et relis le chemin deux fois. Un rm -rf avec un mauvais chemin, ou avec une espace au mauvais endroit, a déjà effacé des serveurs entiers.
Qui suis-je, et qui d’autre est là ?
whoami affiche ton nom d'utilisateur. id dev montre un autre compte de cette machine, que les leçons suivantes utilisent. Chaque compte a ses propres fichiers, et les droits décident ce que chacun peut toucher.
whoamiAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
id devAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Vérification finale
Astuce
Réponds sans regarder en arrière. 1. Quelle commande permet à un fichier de s'exécuter ? 2. Que veut dire rwx ? 3. Pourquoi vérifier avec pwd avant rm -rf ? Réponses : chmod +x ; lire, écrire, exécuter ; il n'y a pas de corbeille, donc un mauvais chemin ne se rattrape pas.
Pour les enseignants
Astuce
Cette leçon se fait dans un lab de type machine virtuelle : chaque élève a sa propre machine Ubuntu, et un bouton Exécuter tape dans son terminal et montre ce qui s'est affiché. Points clés : 1. Les droits disent qui peut lire, écrire et exécuter un fichier, et chmod +x le laisse s'exécuter. 2. rm est définitif, donc on vérifie le chemin d'abord. Erreur fréquente : croire que rm a une corbeille. Matériel : le lab et un navigateur. Conseil : faites lire le chemin à voix haute avant d'appuyer sur Entrée pour rm -rf. Le lab n'a pas de vérification et ne note rien ; donnez un travail à rendre de votre choix si vous voulez une note.