Un cap pour ce chapitre
Ce que vous saurez faire
- Interpréter des chemins absolus et relatifs.
- Utiliser les commandes usuelles de navigation.
- Déterminer les permissions d’un fichier pour un compte donné.
Les bases utiles pour commencer
Se repérer dans une arborescence
Dans une arborescence Unix, la racine est notée /. Un chemin absolu commence par cette racine, par exemple /home/lea/nsi/cours.txt. Un chemin relatif part du répertoire courant : depuis /home/lea, le chemin nsi/cours.txt désigne le même fichier. Le symbole . représente le répertoire courant et .. son parent.
La commande pwd affiche le répertoire courant. ls liste un contenu et cd change de répertoire. Ces commandes ne déplacent pas les fichiers : elles modifient ou consultent votre point de repère dans l’arborescence. Un chemin relatif peut donc désigner autre chose après un cd.
On peut résoudre un chemin sans terminal : écrivez le répertoire courant, puis appliquez les composantes de gauche à droite. Depuis /home/lea/nsi, ../images/./graphe.png remonte à /home/lea, descend dans images, reste au même endroit pour ., puis désigne le fichier. Un chemin est une désignation, il ne prouve pas que la cible existe ni que vous pouvez la lire.
Manipuler des fichiers de façon explicite
mkdir crée un répertoire, cp copie, mv déplace ou renomme et cat affiche le contenu textuel. Dans cp source destination, l’ordre des arguments est essentiel. La commande rm supprime ; elle n’est pas nécessairement associée à une corbeille permettant une restauration.
Les espaces séparent normalement les arguments. Un nom comprenant un espace doit être protégé, par exemple avec des guillemets. Avant une modification, on peut vérifier le répertoire courant et le nom de la cible. Les exemples du cours utilisent des fichiers fictifs ; le laboratoire ne lance aucune commande sur votre ordinateur.
pwd
ls
mkdir exercices
cp cours.txt exercices/copie.txt
cat exercices/copie.txtTrois catégories de permissions
Un fichier possède un propriétaire et un groupe. Les permissions distinguent le propriétaire, les membres du groupe et les autres comptes. Pour un fichier ordinaire, r autorise la lecture, w l’écriture et x l’exécution, sous réserve des autres conditions du système. La chaîne rw-r----- donne lecture et écriture au propriétaire, lecture au groupe et aucun de ces droits aux autres.
Les catégories ne s’additionnent pas. Si vous êtes propriétaire, ce sont les droits du propriétaire qui s’appliquent ; vous ne récupérez pas un droit absent en regardant la catégorie « autres ». Le laboratoire suppose un fichier ordinaire, un répertoire accessible et aucun privilège administratif ni règle supplémentaire.
Pour décider d’une permission, écrivez une chaîne de trois décisions : quel compte effectue l’opération, quelle catégorie correspond au fichier, quel bit exige l’opération ? Ainsi, le mode 604 autorise les autres à lire mais refuse la lecture à un membre du groupe qui n’est pas propriétaire. Ce résultat peut surprendre si l’on choisit intuitivement le chiffre le plus avantageux.
Lire et modifier un mode
La notation numérique additionne 4 pour lire, 2 pour écrire et 1 pour exécuter dans chaque catégorie. Le mode 640 correspond ainsi à rw-r-----. Le mode 754 donne tous les droits au propriétaire, lecture et exécution au groupe, lecture aux autres. La commande chmod 640 cours.txt modifie ces permissions lorsque le compte en a le droit.
Pour un répertoire, les significations sont différentes : lire permet de lister les noms et exécuter permet de le traverser. Supprimer un fichier dépend notamment des droits du répertoire parent. Il serait donc incorrect de déduire toutes les opérations possibles sur un répertoire à partir de la seule règle donnée pour un fichier ordinaire.
Exemple suivi : préparer une copie de travail
On suppose que /home/lea/nsi/cours.txt existe et qu’un répertoire essais peut être créé. Depuis /home/lea, cd nsi change seulement le répertoire courant. mkdir essais crée le dossier puis cp cours.txt essais/copie.txt crée un second fichier. mv essais/copie.txt essais/travail.txt renomme cette copie. Le fichier initial reste présent.
Le bilan final comprend deux fichiers : cours.txt et essais/travail.txt. Il n’existe plus de fichier sous le nom essais/copie.txt. Pour contrôler une suite de commandes, dessinez l’arborescence après chaque opération et tenez à part le répertoire courant. Cette séparation empêche de confondre un déplacement de fichier avec un changement de votre position. Si un nom contient un espace, comme mon cours.txt, utilisez des guillemets pour qu’il forme un seul argument.
Construire un mode à partir d’un besoin
Un script doit être lu, modifié et exécuté par sa propriétaire, lu et exécuté par son groupe, et inaccessible aux autres. Le calcul se fait séparément : propriétaire 4+2+1=7, groupe 4+1=5, autres 0. Le mode est 750, soit rwxr-x---. Changer un chiffre ne change que la catégorie correspondante.
Pour un document partagé en lecture, 640 peut suffire dans le modèle du cours : propriétaire en lecture-écriture, groupe en lecture, autres sans droit. N’ajoutez pas l’exécution parce que le document sera ouvert par un programme. Lire un texte et exécuter un programme sont des opérations différentes. Enfin, les permissions d’un fichier ne suffisent pas à décrire les traversées des dossiers de son chemin. La simulation isole volontairement le fichier ordinaire pour apprendre le mécanisme de sélection de catégorie.
À vous de faire varier les choses
Qui peut ouvrir ce fichier ?
Modifiez les droits de chaque catégorie puis choisissez un compte et une opération. Prévoyez l’autorisation avant de lire l’explication.
Lire le résultat de l’expérience initiale
Permission accordée
Seule la catégorie groupe est évaluée. Fichier ordinaire, chemin accessible et absence de privilèges particuliers supposés.
| Catégorie | Chiffre | Droits |
|---|---|---|
| Propriétaire | 6 | rw- |
| Groupe | 4 | r-- |
| Autres | 0 | --- |
Choisissez d’abord la catégorie applicable, puis cherchez le droit nécessaire à l’opération.
De la compréhension à l’autonomie
À vous de résoudre
Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.
Retrouver le même fichier
Le répertoire courant est /home/lea/nsi. Donnez un chemin relatif puis absolu vers /home/lea/images/graphe.png.
Indice 1
Remontez d’abord au parent de nsi.
Indice 2
Le chemin absolu ne dépend pas du répertoire courant.
Comprendre la correction
Le chemin relatif est ../images/graphe.png. Le chemin absolu est /home/lea/images/graphe.png. On remonte de nsi à lea puis on descend dans images. Écrire images/graphe.png chercherait à tort un dossier images à l’intérieur de nsi.
Décoder 640
Un fichier appartient à Léa et au groupe classe. Son mode est 640. Sam est membre de classe, sans être propriétaire. Peut-il lire et modifier ce fichier ?
Indice 1
Choisissez d’abord la catégorie de Sam.
Indice 2
Le chiffre central vaut 4.
Comprendre la correction
Sam utilise les droits du groupe : 4, soit lecture seule. Il peut lire le fichier mais ne peut pas l’écrire dans le modèle étudié. Le 6 du propriétaire ne s’applique pas à lui. Les permissions portent sur des comptes et catégories définis, pas sur la personne qui a lancé le programme en premier.
Copier ou déplacer ?
On souhaite conserver rapport.txt tout en créant une copie nommée sauvegarde.txt. Un élève propose mv rapport.txt sauvegarde.txt. Quelle commande convient et pourquoi ?
Indice 1
mv change l’emplacement ou le nom de l’original.
Indice 2
cp crée une copie distincte.
Comprendre la correction
La commande adaptée est cp rapport.txt sauvegarde.txt. Dans ce cas simple où la destination n’existe pas, rapport.txt est conservé et une copie est créée. Avec mv, le fichier original aurait seulement été renommé ; on n’aurait pas deux fichiers.
Le propriétaire ne cumule pas les catégories
Un fichier possède le mode 047. Dans le modèle du cours, son propriétaire peut-il le lire en invoquant les droits accordés aux autres ?
Indice 1
La catégorie du propriétaire est choisie avant les autres.
Indice 2
Le premier chiffre du mode est zéro.
Comprendre la correction
Non. Les permissions du propriétaire sont 0 et ne donnent pas la lecture. Le 7 des autres ne complète pas sa catégorie. Le propriétaire peut normalement modifier les permissions de son fichier, mais cette possibilité est une opération différente d’une lecture autorisée par le mode actuel.
Retrouver les fichiers après les commandes
Depuis /home/lea, on exécute cd nsi, mkdir archive, cp cours.txt archive/a.txt, mv archive/a.txt archive/b.txt, puis cd archive. Supposez les commandes réussies. Donnez le répertoire courant final et les chemins absolus des deux fichiers.
Indice 1
Copier conserve le fichier source.
Indice 2
Le second cd ne déplace aucun fichier.
Comprendre la correction
Le répertoire courant final est /home/lea/nsi/archive. Les fichiers sont /home/lea/nsi/cours.txt et /home/lea/nsi/archive/b.txt. Le nom a.txt a été remplacé par b.txt. Il reste deux fichiers ordinaires, et non trois.
Accorder exactement les droits nécessaires
Un programme appartient à Zoé et au groupe robot. Zoé doit lire, écrire et exécuter ; robot doit lire et exécuter ; les autres ne doivent rien pouvoir faire. Donnez le mode. Puis retirez au groupe la lecture en conservant son exécution : quel nouveau mode obtenez-vous ?
Indice 1
Évaluez chaque triplet indépendamment avec 4, 2 et 1.
Indice 2
Retirer la lecture soustrait 4 au chiffre du groupe.
Comprendre la correction
Le premier mode est 750. En supprimant seulement la lecture au groupe, son chiffre passe de 5 à 1, d’où 710. Les droits du propriétaire et des autres restent identiques. Le résultat de l’exécution d’un script dépend aussi de conditions hors du modèle ; ici on calcule seulement ses bits de permission.
Une règle de priorité surprenante
Un fichier de mode 047 appartient à Léa et au groupe classe. Léa est aussi membre de classe, Sam appartient seulement au groupe classe, et Noé n’appartient à aucune de ces catégories. Qui peut lire ? Qui peut écrire ? Justifiez sans additionner les catégories.
Indice 1
Léa relève du premier chiffre même si elle est membre du groupe.
Indice 2
Sam utilise 4 et Noé utilise 7.
Comprendre la correction
Léa utilise 0 : aucun des droits évalués. Sam utilise 4 : lecture seule. Noé utilise 7 : lecture, écriture et exécution. Sam et Noé peuvent donc lire ; Noé seul peut écrire. Le propriétaire peut généralement changer le mode, mais cette faculté n’ajoute pas une permission de lecture au mode actuel.
Les erreurs qui méritent un détour
- Oublier le répertoire courant dans un chemin relatif.
- Commencez par écrire le résultat de
pwd, puis appliquez chaque composante du chemin. - Utiliser 777 pour résoudre toute difficulté.
- Ce mode donne des droits très larges. Identifiez l’opération et les comptes qui en ont réellement besoin.
La fiche à garder
L’essentiel à retenir
- Un chemin absolu commence par la racine.
cpcopie tandis quemvdéplace ou renomme.- Les droits sont évalués dans la catégorie applicable au compte.
Cette notion au bac
Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.
Le prochain pas
Retrouver le catalogue de Première
Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.
