ajout cours arborescence et droit unix
This commit is contained in:
210
architecture/os/ARBORESCENCE.md
Normal file
210
architecture/os/ARBORESCENCE.md
Normal file
@@ -0,0 +1,210 @@
|
||||
> Dans un système Unix, tout est fichier. Chaque élèment du système d'exploitation est un fichier, une donnée.
|
||||
>
|
||||
> On peut donc accéder et modifier chaque élèment de manière simple.
|
||||
>
|
||||
> On parle de ***Système de Gestion de Fichiers (SGF)*** pour définir l'organisation des données dans un système d'exploitation.
|
||||
|
||||
### Tout est fichier
|
||||
|
||||
Dans un système Unix, on distingue 3 types de fichier :
|
||||
|
||||
- ***Les fichiers ordinaires*** :
|
||||
- *Fichiers de données* : textes ou formats libres et propriétaires
|
||||
- *Fichiers programmes* : instructions exécutables (binaire ou script)
|
||||
|
||||
- ***Les répertoires***
|
||||
|
||||
- ***Les fichiers spéciaux*** : préiphériques, imprimantes, disques, cd / dvd / blu ray ... etc
|
||||
|
||||
Un fichier est désigné par son **nom**, il faut donc ne pas nommer n'importe comment vos fichiers.
|
||||
De plus, les fichiers systèmes portent tous un nom prédéfini que le système reconnait afin de faciliter son fonctionnement.
|
||||
|
||||
-----------------
|
||||
|
||||
### Chemin relatif contre chemin absolu
|
||||
|
||||
L'accès au fichier se fait par :
|
||||
|
||||
- Une référence *absolue*
|
||||
|
||||
- Une référence *relative*
|
||||
|
||||
Pour mieux comprendre ce que cela signifie, il faut avoir en tête plusieurs choses :
|
||||
|
||||
Dans tous les répertoires se trouve :
|
||||
|
||||
- le répertoire courant :
|
||||
|
||||
```bash
|
||||
.
|
||||
```
|
||||
|
||||
- le répertoire père :
|
||||
|
||||
```bash
|
||||
..
|
||||
```
|
||||
|
||||
|
||||
|
||||
Le **chemin absolu** représente le chemin complet vers un emplacement depuis ***la racine*** (il débute obligatoirement par ‘ / ’)
|
||||
|
||||
```bash
|
||||
usr/local/bin/NSI/cours.pdf
|
||||
```
|
||||
|
||||
Au contraire, le chemin relatif démarre du répertoire courant :
|
||||
|
||||
```bash
|
||||
« qcm/nsi_qcm_os.md
|
||||
../repertoire_pere/toto.pdf »
|
||||
```
|
||||
|
||||
---------------
|
||||
|
||||
### Arborescence
|
||||
|
||||
Tous ces fichiers sont regroupés dans une ***structure hierarchisée*** représentée sous la forme d' un **arbre** inversé :
|
||||
|
||||
L’arbre comprend :
|
||||
|
||||
- Les nœuds : les répertoires
|
||||
- Les feuilles : les fichiers ordinaires ou spéciaux
|
||||
|
||||
Le sommet de l'arbre est appelé **racine** (la même qui débute le chemin absolu d'un fichier) aussi appelée **root**.
|
||||
|
||||
On peut représenter cette arborescence sous la forme suivante:
|
||||
|
||||
<img src="assets/arborescence.png" alt="arborescence" style="zoom:50%;" />
|
||||
|
||||
À chaque fois que l'on entre dans un répertoire, on descend dans l'arbre.
|
||||
|
||||
Le dossier **racine** contient les principaux dossiers d'un système Unix :
|
||||
|
||||
- bin (les commandes de bases du système)
|
||||
|
||||
- dev (fichiers représentants les différents matériels connextés au système)
|
||||
|
||||
- etc (configuration du système)
|
||||
|
||||
- home (répertoire d'accueil des utilisateurs et utilisatrices, chacun et chacune possédant le sien)
|
||||
|
||||
- lib (contient les librairies utilisées par le système)
|
||||
|
||||
- mnt (dossier où l'on "monte" les périphériques usb entre autres...)
|
||||
|
||||
- tmp (fichiers temporaires)
|
||||
|
||||
- usr (outils et logiciels installés dans le système)
|
||||
|
||||
- var (données fréquemment utilisées)
|
||||
|
||||
- ...
|
||||
|
||||
|
||||
|
||||
---------------
|
||||
|
||||
### Rappel sur les commandes UNIX
|
||||
|
||||
- Changement de répertoire : cd
|
||||
- Affichage du nom du répertoire courant : pwd
|
||||
- Affichage du contenu du répertoire : ls
|
||||
- Création d’un répertoire : mkdir
|
||||
- Suppression d’un répertoire : rmdir
|
||||
- Renommage/déplacement un répertoire : mv
|
||||
|
||||
***Exemples***
|
||||
|
||||
Pour changer de répertoire, la syntaxe est : *cd nom_répertoire*
|
||||
|
||||
```bash
|
||||
$ cd /usr/bin $ cd
|
||||
$ cd ../etc
|
||||
$ cd ..
|
||||
|
||||
$ cd ~/nsi
|
||||
```
|
||||
|
||||
Pour déplacer un fichier, la syntaxe est : mv nom_fichier chemin_du_nouveau_repertoire
|
||||
|
||||
```bash
|
||||
mv cours_nsi.pdf cours_pdf/nsi
|
||||
```
|
||||
|
||||
Cela déplacera le fichier *cours_nsi.pdf* du répertoire courant vers le répertoire *cours_pdf/nsi*
|
||||
|
||||
Pour renommer un fichier, il suffit de le déplacer au même endroit en changeant le nom de destination:
|
||||
|
||||
```bash
|
||||
mv cours_nsi.pdf toto.pdf
|
||||
```
|
||||
|
||||
Ici, cours_nsi.pdf va être renommé en toto.pdf
|
||||
|
||||
---------------
|
||||
|
||||
### Droits et permissions
|
||||
|
||||
> Il s'agit d'un point très important dans l'aproche de la sécurité d'un système Unix, ainsi que dans sa gestion.
|
||||
|
||||
Le système Unix reconnaît 3 (trois) types d'utilisateurs :
|
||||
|
||||
- L'utilisateur ou propriétaire
|
||||
- Le groupe
|
||||
- Le reste (autres)
|
||||
|
||||
Les fichiers sont protégés au moyen d'un code binaire de 9 (neuf) bits :
|
||||
|
||||
| Propriétaire | Groupe | Autres |
|
||||
| ------------ | ------ | ------ |
|
||||
| 3 bits | 3 bits | 3 bits |
|
||||
| r w x | r w x | r w x |
|
||||
|
||||
Une lettre indique l'autorisation:
|
||||
|
||||
- r pour ***r**ead* - lire
|
||||
- w pour ***w**rite* - écrite
|
||||
- x pour *e**X**ecute* - executer
|
||||
|
||||
Un tiret indique, quant à lui, l'interdiction.
|
||||
|
||||
Les droits d'accès d'un fichier sont décrits par une succession des bits indiqués au dessus dans l'ordre du tableau.
|
||||
|
||||
Exemple : Si les droits de mon fichier visé sont
|
||||
|
||||
```bash
|
||||
r w x r - x r - -
|
||||
```
|
||||
|
||||
cela signifie que mon fichier est accessible en :
|
||||
|
||||
- lecture, écriture et exécution pour le propriétaire
|
||||
- lecture et exécution pour le groupe
|
||||
- lecture seule pour les autres
|
||||
|
||||
Les droits d'accès concernent aussi les dossiers :
|
||||
|
||||
- Lecture : permet de visualiser le contenu des répertoires
|
||||
- Écriture : permet d'ajouter de renommer ou de supprimer des élèments
|
||||
- Exécution : permet d'accéder au contenu (indispensable sinon les deux autres droits ne servent à rien)
|
||||
|
||||
Il existe trois principales commandes pour gérer les droits sous un système Unix :
|
||||
|
||||
```bash
|
||||
chmod
|
||||
```
|
||||
|
||||
change les autorisations d'accès à un fichier ou répertoire
|
||||
|
||||
```bash
|
||||
chown
|
||||
```
|
||||
|
||||
change le ou la propriétaire d'un fichier ou répertoire
|
||||
|
||||
```bash
|
||||
chgrp
|
||||
```
|
||||
|
||||
change le groupe propriétaire
|
||||
Reference in New Issue
Block a user