Le système d'exploitation : le noyau, les processus, les fichiers et les permissions
- Expliquer ce qu’est un système d’exploitation et pourquoi on ne peut pas s’en passer
- Énumérer ses cinq rôles principaux — processus, mémoire, fichiers, utilisateurs et permissions, matériel
- Distinguer clairement un programme d’un processus
- Expliquer comment plusieurs processus « tournent en parallèle » même sur peu de cœurs (ordonnancement)
- Expliquer ce qu’est un système de fichiers et décrire l’arborescence des dossiers
- Distinguer un chemin absolu d’un chemin relatif, et comprendre
.et..
Dans cette leçon
Cette leçon se compose de quelques chapitres courts, dans le même ordre que les diapositives :
- Chapitre 1 — ce qu’est un système d’exploitation et ce qu’est le noyau
- Chapitre 2 — un programme face à un processus, et la gestion de la mémoire
- Chapitre 3 — le système de fichiers, les utilisateurs et les permissions
Chapitre 1 : Ce qu’est un système d’exploitation et ce qu’est le noyau
Qu’allons-nous apprendre ?
Dans la leçon précédente, nous avons vu que le système d’exploitation « trouve le fichier, crée un processus et y charge le programme ». Maintenant, nous allons vraiment faire sa connaissance :
- Ce qu’est un système d’exploitation (OS, de l’anglais Operating System).
- Ce qu’il gère, et pourquoi.
- Ce qu’est le noyau (kernel) — le cœur du système d’exploitation.
- Comment notre code lui « demande » des choses, par un appel système (system call).
Pourquoi en avons-nous besoin ?
Chaque print, chaque fichier que vous ouvrez, chaque connexion Internet et, dans les thèmes backend et bases de données, chaque serveur — tout passe par le système d’exploitation. Quand vous obtenez une erreur comme PermissionError ou Address already in use, elle vient du système d’exploitation. Pour comprendre l’erreur, il faut comprendre qui l’a envoyée et pourquoi.
De plus, la plupart des serveurs du monde tournent sous Linux. Même si vous travaillez sous Windows, vous rencontrerez Linux au travail, il est donc important de comprendre les idées communes à tous les systèmes d’exploitation.
Explication à partir des bases
Qu’est-ce qu’un système d’exploitation ?
Un système d’exploitation est le premier programme qui démarre quand on allume un ordinateur, et le dernier à s’arrêter. Son rôle : gérer les ressources de l’ordinateur et permettre aux autres programmes de les utiliser de façon sûre et équitable.
Exemples : Windows, macOS, Linux (Ubuntu, Debian…), Android, iOS.
Imaginez un immeuble de bureaux avec de nombreuses entreprises (programmes). Il y a l’électricité, des ascenseurs, des salles de réunion et une réserve (les ressources : CPU, RAM, disque, réseau). Si chaque entreprise allait directement au tableau électrique et prenait autant qu’elle voulait — ce serait le chaos. Le gestionnaire de l’immeuble (le système d’exploitation) répartit les ressources, veille à ce qu’aucune entreprise n’entre dans le bureau d’une autre, et détient les clés de chaque porte.
Les cinq rôles principaux
| Rôle | Ce que cela signifie | Exemple tiré de notre code |
|---|---|---|
| Gestion des processus | Crée les processus, répartit le temps CPU entre eux, les termine. | Chaque python file.py crée un nouveau processus. |
| Gestion de la mémoire | Donne à chaque processus sa propre zone de RAM et empêche un processus de toucher la mémoire d’un autre. | Nos variables vivent dans la zone que le système d’exploitation a attribuée. |
| Gestion des fichiers (système de fichiers) | Organise le disque en dossiers et en fichiers, et lit et écrit pour nous. | Ouvrir un fichier, enregistrer, supprimer. |
| Utilisateurs et permissions | Qui est connecté, et ce qu’il a le droit de faire. | PermissionError en essayant d’écrire dans un dossier système. |
| Gestion des périphériques | Communique avec le clavier, l’écran, la carte réseau et le disque via des pilotes (drivers). | print arrive à l’écran, et une requête HTTP sort par la carte réseau. |
Qu’est-ce que le noyau ?
Le noyau (kernel) est la partie centrale et la plus protégée du système d’exploitation. Il est chargé en RAM en premier et y reste tout le temps. C’est lui qui exécute réellement les cinq rôles ci-dessus.
Tout le reste, comme le bureau, l’explorateur de fichiers, le terminal et le navigateur, sont des programmes ordinaires qui tournent « au-dessus » du noyau.
Mode noyau face à mode utilisateur
Le processeur peut fonctionner selon deux modes :
- Mode noyau (Kernel Mode) — accès complet à tout le matériel et à toute la mémoire. Seul le noyau tourne ainsi.
- Mode utilisateur (User Mode) — accès limité. Tous nos programmes, y compris Python, tournent ainsi.
Pourquoi ? Si chaque programme pouvait accéder directement au matériel, un seul bug dans un seul programme pourrait faire tomber tout l’ordinateur, et un virus pourrait lire la mémoire de votre banque. La séparation protège le système.
L’appel système — demander au noyau
Alors comment un programme en mode utilisateur écrit-il dans un fichier ou envoie-t-il des données sur le réseau ? Il demande au noyau. Cette demande s’appelle un appel système (system call).
Your Python code: print("Hi")
│
Python interpreter: "I need to write 'Hi' to the screen"
│ System Call (write)
▼
Kernel (Kernel Mode): checks permissions → talks to the screen driver
│
▼
Hardware: the text appears- Système d’exploitation (Operating System, OS) — le logiciel qui gère les ressources de l’ordinateur.
- Noyau (Kernel) — le cœur protégé de l’OS. Toujours en marche, il fait la gestion réelle.
- Pilote (Driver) — un petit programme qui apprend au noyau à communiquer avec un composant matériel précis.
- Appel système (System Call) — la demande d’un programme au noyau d’effectuer une action protégée.
- Mode utilisateur / mode noyau (User Mode / Kernel Mode) — le mode limité des programmes ordinaires / le mode complet du noyau.
Les systèmes d’exploitation courants
| Système d’exploitation | Où on le rencontre | Le shell du terminal |
|---|---|---|
| Windows | La plupart des ordinateurs personnels | PowerShell |
| macOS | Les ordinateurs Apple | zsh |
| Linux | La plupart des serveurs cloud, et les ordinateurs de développeurs | Bash |
| Android / iOS | Téléphones et tablettes | — |
Ils remplissent tous les cinq mêmes rôles — processus, mémoire, fichiers, utilisateurs et permissions, matériel — et ils ont tous un noyau. Les différences portent surtout sur l’interface, les commandes du terminal et la structure des dossiers (par exemple C:\ sous Windows contre / sur Mac et Linux).
Pourquoi est-ce important pour les développeurs ? Le code que vous écrivez sous Windows finira souvent par tourner sur un serveur Linux dans le cloud. Il vaut donc la peine de connaître les différences — et d’écrire du code qui ne dépend pas d’un seul système d’exploitation.
Erreur courante
L’erreur : essayer de toucher aux fichiers système « juste pour voir ».
Le programme d’un utilisateur ordinaire essaie, par exemple, de supprimer un fichier qui appartient au système d’exploitation (dans le dossier C:\Windows\System32). Ce qui se passe :
- Le programme tourne en mode utilisateur, il n’accède donc pas lui-même au disque — il envoie un appel système au noyau.
- Le noyau vérifie les permissions et voit que l’utilisateur ordinaire n’a pas la permission d’écrire sur ce fichier.
- La demande est refusée, et le programme reçoit une erreur de permission (« Access is denied » /
PermissionError).
Et c’est une bonne chose : les permissions protègent l’ordinateur des erreurs des utilisateurs et des logiciels malveillants. Une erreur de permission ne vient pas de votre programme — elle vient du système d’exploitation, qui a refusé.
Résumé
- Un système d’exploitation gère les ressources de l’ordinateur : processus, mémoire, fichiers, utilisateurs et permissions, et matériel.
- Le noyau est son cœur protégé et tourne en mode noyau. Nos programmes tournent en mode utilisateur.
- Un programme demande un service au noyau par un appel système : écrire à l’écran, ouvrir un fichier, communiquer.
- Les erreurs de permission viennent du système d’exploitation — c’est lui qui vérifie et refuse.
- Windows, macOS et Linux sur les ordinateurs et les serveurs, Android et iOS sur les téléphones — tous avec les mêmes rôles de base.
Documentation officielle
Chapitre 2 : Un programme face à un processus, et la gestion de la mémoire
Qu’allons-nous apprendre ?
- La différence entre un programme et un processus.
- Comment le système d’exploitation fait tourner des dizaines de processus « en même temps » — l’ordonnancement (scheduling).
- Comment il gère la RAM — la gestion de la mémoire.
- Comment voir et arrêter des processus depuis le terminal.
Pourquoi en avons-nous besoin ?
- Dans les thèmes backend et bases de données, nous lancerons un serveur. Un serveur est un processus qui ne se termine pas. Si vous le lancez deux fois, le second échouera, parce que le premier tourne encore et occupe son adresse. Sans comprendre les processus, cela ressemble à de la magie.
- Quand un programme « gèle », il faut savoir trouver le processus et l’arrêter.
- Une fuite de mémoire (memory leak), c’est-à-dire un programme dont la mémoire ne fait que grandir, est un bug que l’on traque avec des outils de surveillance des processus.
Explication à partir des bases
Programme — la recette. Processus — la cuisson.
- Programme = un fichier sur le stockage qui contient des instructions. Il est statique : il ne fait rien, il est simplement posé sur le disque. Exemples :
python.exe,chrome.exe,hello.py. - Processus = une instance en cours d’exécution d’un programme. Il est dynamique : il a de la mémoire en RAM, un PID et un état (en cours / en attente / en train de se terminer).
Un point important : un même programme peut faire tourner plusieurs processus en parallèle. Vous avez ouvert 3 fenêtres de VS Code ? Il y a un programme et 3 processus (en pratique plus, car les navigateurs et éditeurs modernes se découpent en plusieurs processus).
Programme = une recette de gâteau écrite dans un livre. Processus = un gâteau qui cuit au four en ce moment. Avec la même recette, on peut faire cuire trois gâteaux en parallèle dans trois fours. Chacun a son propre état : l’un a déjà levé, l’autre commence à peine.
Qu’a chaque processus ?
| Partie | Explication |
|---|---|
| PID | Un numéro d’identification unique. |
| Espace mémoire | Une zone privée de RAM : le code, les variables et les données. |
| État | Running (sur un CPU), Ready (attend son tour), Waiting (attend quelque chose d’externe, comme un fichier ou le réseau). |
| Propriétaire | Quel utilisateur l’a lancé, ce qui détermine ses permissions. |
| Parent | Quel processus l’a créé. Par exemple : le terminal est le parent de python. |
L’ordonnancement — comment tout le monde tourne-t-il « en même temps » ?
Vous avez peut-être 8 cœurs, mais 200 processus tournent sur l’ordinateur. Comment ?
L’ordonnanceur (scheduler), une partie du noyau, donne à chaque processus une très courte tranche de temps sur le CPU (des millisecondes), puis passe au processus suivant. Cela se fait si vite qu’on a l’impression que tous tournent en même temps.
Time → | P1 | P2 | P3 | P1 | P2 | P3 | P1 | ...
each slice ≈ a few millisecondsUn processus qui attend (par exemple sur time.sleep ou une réponse du réseau) ne reçoit aucun temps CPU tant que l’attente n’est pas terminée. C’est pourquoi un serveur qui attend des requêtes n’utilise presque pas de CPU.
La gestion de la mémoire
Le système d’exploitation fait trois choses principales avec la mémoire :
- Allocation — quand un processus est créé, et chaque fois qu’il a besoin de plus de mémoire (par exemple une liste qui grandit), l’OS lui donne plus de RAM.
- Isolation — chaque processus ne voit que sa propre mémoire. Un processus ne peut pas lire ni modifier les variables d’un autre processus. Cela empêche un bug dans une application de corrompre une autre application.
- Libération — quand un processus se termine, toute sa RAM est rendue au système.
Et si la RAM vient à manquer ? Le système d’exploitation déplace des parties inutilisées vers le disque (swap sous Linux/Mac, fichier d’échange — page file — sous Windows). Cela évite un plantage, mais l’ordinateur devient très lent, car le disque est lent.
Python a aussi son propre mécanisme interne : le ramasse-miettes (garbage collector). Quand un objet n’est plus utilisé (aucune variable ne pointe vers lui), Python libère sa mémoire tout seul. C’est pourquoi en Python vous n’avez pas besoin de « libérer la mémoire » à la main, comme dans des langages tels que le C.
L’arbre des processus — qui a lancé qui
Chaque processus est créé par un autre processus — son parent. Quand vous lancez un programme depuis le terminal, le terminal est le parent :
explorer.exe PID 4120
└── pwsh.exe PID 9920 (Terminal)
└── python.exe PID 18044 (our program)Chaque processus a son propre PID, et chacun a aussi un PPID — le PID de son parent. Quand vous fermez le terminal, les processus qu’il a lancés se ferment généralement aussi.
Commandes pour voir et arrêter des processus
On peut voir les processus dans le Gestionnaire des tâches, mais aussi depuis le terminal. Le formateur montrera les commandes à l’écran :
Windows (PowerShell) :
Get-Process # list all processes
Get-Process python # only processes named python
Stop-Process -Id 12345 # stop the process with PID 12345Mac / Linux (Bash / Zsh) :
ps aux # list all processes
ps aux | grep python # filter lines that contain "python"
kill 12345 # stop the process with PID 12345Erreur courante
L’erreur : croire que Ctrl + C a provoqué une « erreur ». Quand vous arrêtez un programme Python en cours avec Ctrl + C, quelque chose comme ceci apparaît :
^C
Traceback (most recent call last):
...
KeyboardInterruptCtrl + Cenvoie au processus une demande d’arrêt — ce n’est pas un bug.KeyboardInterruptdit : « tu m’as arrêté en plein milieu ».- Toute valeur qui n’était que dans la RAM du processus — est perdue, car sa mémoire a été libérée.
Résumé
- Un programme est un fichier statique sur le disque. Un processus en est une instance en cours d’exécution, avec un PID, de la mémoire et un état.
- Un programme peut faire tourner plusieurs processus, chacun avec sa propre mémoire isolée.
- L’ordonnanceur répartit le temps CPU en petites tranches, si bien que tout semble parallèle.
- Gestion de la mémoire : allocation, isolation et libération. Quand la RAM manque, on utilise le swap / le fichier d’échange, et c’est lent.
- Chaque processus a un parent. On arrête un programme avec
Ctrl + C, et un processus bloqué avecStop-Process/killpar son PID.
Documentation officielle
Chapitre 3 : Le système de fichiers, les utilisateurs et les permissions
Qu’allons-nous apprendre ?
- Le système de fichiers — comment le système d’exploitation organise le disque.
- Les chemins — absolu face à relatif, et ce que sont
.et... - Les utilisateurs — qui est connecté, et qui est l’utilisateur « tout-puissant ».
- Les permissions — qui a le droit de faire quoi avec chaque fichier.
Pourquoi en avons-nous besoin ?
- Dans le thème Python, nous lirons et écrirons des fichiers depuis Python. L’erreur la plus fréquente y est
FileNotFoundError, et la cause est presque toujours un mauvais chemin. - Dans le thème des bases de données, nous lancerons un serveur de base de données et nous nous y connecterons — et beaucoup d’outils y sont configurés avec des chemins vers des fichiers et des dossiers.
- En installant des outils, on obtient parfois « Access denied » ou « Permission denied ». Il vaut la peine de comprendre pourquoi cela arrive, plutôt que de résoudre chaque problème par « exécuter en tant qu’administrateur ».
Explication à partir des bases
Le système de fichiers
Le disque lui-même est une énorme suite d’octets. Le système de fichiers (file system) est la couche du système d’exploitation qui transforme cette suite en fichiers et dossiers avec des noms, et qui conserve des informations supplémentaires (métadonnées) pour chaque fichier : taille, date de modification, propriétaire et permissions.
La structure est un arbre : il y a une racine (root), des dossiers en partent, et chaque dossier contient d’autres dossiers et fichiers.
Windows Mac / Linux
C:\ /
├── Users\ ├── home/ (Mac: /Users/)
│ └── dana\ │ └── dana/
│ ├── Desktop\ │ ├── Desktop/
│ └── dev\ │ └── dev/
│ └── kodkod6\ │ └── kodkod6/
├── Program Files\ ├── usr/
└── Windows\ └── etc/Différences importantes :
| Windows | Mac / Linux | |
|---|---|---|
| Racine | Une lettre de lecteur : C:\ (il peut y en avoir d’autres : D:\) | Une seule racine : / |
| Séparateur | \ (barre oblique inverse) | / (barre oblique) |
| Dossier personnel | C:\Users\dana | /home/dana (Mac : /Users/dana) |
| Majuscules/minuscules | File.txt = file.txt | File.txt ≠ file.txt (sous Linux) |
Le dossier personnel (home directory) est le dossier privé de l’utilisateur. Dans ce dossier et ses sous-dossiers, vous avez toutes les permissions. C’est pourquoi kodkod6 se place à l’intérieur.
Chemin absolu face à chemin relatif
- Chemin absolu — part de la racine. Fonctionne depuis n’importe où.
C:\Users\dana\dev\kodkod6\week-1\hello.py - Chemin relatif — part du répertoire courant. Court, mais dépend de l’endroit où l’on se trouve.
week-1\hello.py(si vous êtes danskodkod6)
Deux raccourcis spéciaux :
.(point) = le répertoire courant...(deux points) = le dossier parent, un dossier plus haut.
Standing in: C:\Users\dana\dev\kodkod6\week-1
. → C:\Users\dana\dev\kodkod6\week-1
.. → C:\Users\dana\dev\kodkod6
..\week-2 → C:\Users\dana\dev\kodkod6\week-2
..\.. → C:\Users\dana\devUn chemin absolu est une adresse complète : « Israël, Haïfa, 10 rue Herzl, appartement 3 ». Envoyé de n’importe où dans le monde — il arrive. Un chemin relatif est une indication : « deux portes à droite d’ici ». Il ne fonctionne que si l’on sait d’où l’on part.
Les utilisateurs
Un système d’exploitation prend en charge plusieurs utilisateurs. Chacun a un nom, un mot de passe, un dossier personnel et des permissions. Il existe aussi des utilisateurs « spéciaux » :
- Administrator (Windows) / root (Linux/Mac) — un super-utilisateur avec toutes les permissions sur l’ensemble du système.
- Utilisateurs système — des utilisateurs qui ne sont pas des personnes. Des services comme un serveur ou une base de données tournent sous ces utilisateurs, ainsi même s’ils sont piratés, les dégâts restent limités.
En travail normal, vous travaillez en tant qu’utilisateur ordinaire, et vous n’élevez les permissions que pour une action précise : Exécuter en tant qu’administrateur sous Windows, sudo sous Linux/Mac.
Les permissions
Chaque fichier et chaque dossier a des permissions qui déterminent qui a le droit de faire quoi. Les trois actions de base :
| Permission | Sur un fichier | Sur un dossier |
|---|---|---|
| Lecture (r) | Lire le contenu | Voir quels fichiers il contient |
| Écriture (w) | Modifier / supprimer | Créer et supprimer des fichiers à l’intérieur |
| Exécution (x) | L’exécuter comme un programme | Y entrer (cd) |
Sous Linux/Mac, les permissions s’affichent sous la forme d’une chaîne comme -rwxr-xr--, découpée en trois groupes : propriétaire (owner), groupe (group) et autres (others) :
- rwx r-x r--
│ │ │ └── others: read only
│ │ └─────── group: read + execute
│ └──────────── owner: read + write + execute
└──────────────── type: "-" = file, "d" = directorySous Windows, les permissions s’appellent une ACL et apparaissent dans clic droit → Propriétés → Sécurité. Le principe est le même.
Pourquoi a-t-on besoin de permissions ? Pour qu’un utilisateur ne puisse pas lire les fichiers privés d’un autre, pour qu’un programme défectueux ou un virus ne puisse pas modifier les fichiers système, et pour qu’un serveur piraté ne puisse pas toucher à tout l’ordinateur.
Erreur courante
Erreur 1 : « le fichier est introuvable » — alors qu’il existe.
Standing in: C:\dev\kodkod6
Looking for: data.txt
Searched: C:\dev\kodkod6\data.txt
Real file: C:\dev\kodkod6\week-1\data.txt- Un chemin relatif est vérifié depuis le répertoire courant — depuis l’endroit où se trouve le terminal — et non depuis le dossier où se trouve le fichier.
- Lancé depuis un autre dossier ? Le programme cherche ailleurs, et ne trouve pas.
- La correction : d’abord aller dans le bon dossier (
cd), ou utiliser un chemin absolu.
Erreur 2 : travailler en tant qu’administrateur / root « pour ne pas avoir de problèmes ». Cela contourne la protection qu’offrent les permissions : chaque erreur, ou programme malveillant, obtient l’accès à tout l’ordinateur. Travaillez en utilisateur ordinaire, et n’utilisez les permissions de super-utilisateur que lorsque vous en avez vraiment besoin.
Erreur 3 : croire qu’une erreur de permission est un bug du programme. Quand le système d’exploitation renvoie « Access is denied » / PermissionError, il a vérifié et constaté que l’utilisateur actuel n’a pas la permission pour cette action. La correction consiste à vérifier qui possède le fichier et quelles sont ses permissions — pas à modifier le programme.
Résumé
- Le système de fichiers organise le disque en un arbre de dossiers et de fichiers, à partir de la racine (
C:\ou/). - Un chemin absolu part de la racine. Un chemin relatif part du répertoire courant.
.= ici,..= en haut. - Les chemins relatifs se mesurent depuis l’endroit où vous avez lancé le programme, pas depuis l’emplacement du fichier.
- Chaque utilisateur a un dossier personnel et des permissions. Administrator / root sont des super-utilisateurs, à n’utiliser qu’en cas de besoin.
- Permissions de base : lecture / écriture / exécution. Une erreur de permission = le système d’exploitation a refusé.
Documentation officielle
Exercices
Questions de compréhension sur le contenu de la leçon — sans code.
Exercice 1: Les cinq rôles
Énumérez les cinq rôles principaux du système d’exploitation, et donnez un exemple de chacun tiré de ce qui se passe sur votre ordinateur.
Afficher la solution
| Rôle | Exemple |
|---|---|
| Gestion des processus | Décide qui reçoit le CPU et quand — un navigateur, un lecteur de musique et VS Code « tournent ensemble » |
| Gestion de la mémoire | Donne de la RAM à chaque programme, et empêche un programme de lire la mémoire d’un autre |
| Gestion des fichiers | Conserve les fichiers dans un arbre de dossiers sur le disque |
| Utilisateurs et permissions | Un utilisateur ordinaire ne peut pas supprimer les fichiers système |
| Gestion du matériel | Communique avec l’écran, le clavier et l’imprimante via des pilotes |
Exercice 2: Que se passe-t-il quand print affiche ?
Un programme Python exécute print("Hi"). Décrivez le chemin depuis le programme jusqu’à l’apparition du texte à l’écran. Utilisez les termes mode utilisateur, appel système, noyau et pilote.
Afficher la solution
- Notre programme tourne en mode utilisateur — il n’a pas d’accès direct à l’écran.
- Python demande au noyau d’écrire le texte — c’est un appel système (une demande en bonne et due forme).
- Le noyau, qui tourne en mode noyau avec un accès complet au matériel, vérifie les permissions.
- Le noyau transmet la demande au pilote de l’écran.
- Le texte apparaît à l’écran.
Exercice 3: Programme face à processus
- Quelle est la différence entre un programme et un processus ?
- Vous avez ouvert trois fenêtres de Chrome. Combien y a-t-il de programmes, et au moins combien de processus ?
- L’ordinateur a 8 cœurs, mais 300 processus tournent. Comment est-ce possible ?
Afficher la solution
- Un programme est un fichier sur le disque — la recette. Un processus en est une exécution active en RAM, avec son propre PID et sa propre mémoire — la cuisson.
- Un seul programme (Chrome) et au moins trois processus — en pratique beaucoup plus, car Chrome lance un processus séparé pour chaque onglet et chaque composant.
- L’ordonnanceur du système d’exploitation découpe le temps CPU en petites tranches de quelques millisecondes, et fait passer les cœurs d’un processus à l’autre assez vite pour qu’ils semblent tous tourner en parallèle.
Exercice 4: Les chemins
Le terminal se trouve dans C:\Users\dana\dev\kodkod6\week-1. En quel chemin absolu se traduit chacun des chemins relatifs ?
.
..
..\week-2
..\..Afficher la solution
| Chemin relatif | Chemin absolu |
|---|---|
. | C:\Users\dana\dev\kodkod6\week-1 |
.. | C:\Users\dana\dev\kodkod6 |
..\week-2 | C:\Users\dana\dev\kodkod6\week-2 |
..\.. | C:\Users\dana\dev |
. = le répertoire courant, .. = un dossier plus haut.
Exercice 5: Lire des permissions
Voici une ligne de ls -l sur un ordinateur Linux :
-rw-r----- dana grades.txt- Est-ce un fichier ou un dossier ?
- Qu’a le droit de faire le propriétaire (dana), qu’a le droit de faire le groupe, et qu’ont le droit de faire tous les autres ?
- Un autre utilisateur, qui n’est pas dans le groupe, essaie de lire le fichier. Que se passe-t-il, et qui décide ?
Afficher la solution
- Un fichier — le premier caractère est
-(un dossier commencerait pard). - Les permissions sont découpées en trois groupes de trois caractères :
- Propriétaire
rw-— lecture et écriture. - Groupe
r--— lecture seule. - Tous les autres
---— aucune permission.
- Propriétaire
- Il reçoit une erreur de permission (Permission denied). Celui qui décide est le système d’exploitation — le noyau vérifie les permissions à chaque tentative d’accès au fichier.