Nour a écrit un script sauvegarde.sh
Exercice de TD · niveau 2 · NSI (première), chapitre 9 — Machines, systèmes et réseaux · Système, fichiers et droits
Énoncé
Nour a écrit un script sauvegarde.sh. Elle tape ./sauvegarde.sh et obtient permission denied. La commande ls -l affiche :
-rw-r--r-- 1 nour eleves 312 6 sep 09:14 sauvegarde.sh
- Expliquer le refus, puis donner la commande qui le corrige, en notation octale.
- Un camarade conseille
chmod 777 sauvegarde.sh. Pourquoi est-ce une mauvaise habitude, même si « ça marche » ? - Nour veut que les autres élèves du groupe
elevespuissent exécuter le script mais pas le modifier, et que les utilisateurs extérieurs ne puissent rien en faire. Quel mode ?
Corrigé
1. Le mode est 644 : le propriétaire lit et écrit, personne n'exécute. Or lancer un script demande le droit x. Il faut donc l'ajouter au propriétaire : chmod 744 sauvegarde.sh (soit rwxr--r--).
2. 777 donne rwxrwxrwx : tout le monde peut modifier le script — et un script est exécuté avec les droits de qui le lance. N'importe quel utilisateur de la machine peut donc y glisser une ligne que Nour exécutera elle-même, sans le savoir. Le défaut n'est pas le droit x accordé à tous, c'est le w. Le principe est celui du moindre privilège : on accorde le droit qui manque, jamais tous les droits.
3. Exécution et lecture pour le groupe, rien pour les autres, tout pour le propriétaire : rwxr-x—, soit 750.
Contrôle des trois chiffres : rwx ; r-x ; —. Le droit r est indispensable au groupe : un script est lu par l'interpréteur ligne à ligne, contrairement à un exécutable compilé, à qui x seul suffit.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.