# Fondamentaux

Apprends ça et reviens après !

# [Fondamentaux] Système de fichier

## Introduction

Linux comme beaucoup d'autres systèmes repose sur un système de fichier hiérarchique.

On parle aussi d'arborescence.

## Le descriptif

![filesystem.gif](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/filesystem.gif)

/

<table border="1" id="bkmrk-point-de-montage-fon" style="border-collapse: collapse; width: 100%; height: 967.656px;"><colgroup><col style="width: 16.6873%;"></col><col style="width: 22.6132%;"></col><col style="width: 27.4486%;"></col><col style="width: 33.3745%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Point de montage**</td><td class="align-center" style="height: 29.7969px;">**Fonction**</td><td class="align-center" style="height: 29.7969px;">**Logo**</td><td class="align-center" style="height: 29.7969px;">**Descriptif**</td></tr><tr style="height: 80.1875px;"><td class="align-center" style="height: 80.1875px;">/usr

</td><td class="align-center" style="height: 80.1875px;">Utilisateur

</td><td class="align-center" style="height: 80.1875px;">🖥️

</td><td class="align-center" style="height: 80.1875px;">Ce répertoire contient des données supplémentaires, des programmes et des bibliothèques utilisés par les utilisateurs et les applications.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/boot</td><td class="align-center" style="height: 63.3906px;">Démarrage

</td><td class="align-center" style="height: 63.3906px;">🚀</td><td class="align-center" style="height: 63.3906px;">C'est là que se trouvent les fichiers nécessaires au démarrage du système, y compris le noyau Linux.</td></tr><tr style="height: 46.5938px;"><td class="align-center" style="height: 46.5938px;">/dev</td><td class="align-center" style="height: 46.5938px;">Dispositifs</td><td class="align-center" style="height: 46.5938px;">🔌</td><td class="align-center" style="height: 46.5938px;">Les fichiers spéciaux représentant les périphériques sont stockés ici.</td></tr><tr style="height: 80.1875px;"><td class="align-center" style="height: 80.1875px;">/etc

</td><td class="align-center" style="height: 80.1875px;">Configuration

</td><td class="align-center" style="height: 80.1875px;">📜

</td><td class="align-center" style="height: 80.1875px;">Les fichiers de configuration système résident dans ce dossier. Vous y trouverez des informations cruciales sur le système et les applications.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/home

</td><td class="align-center" style="height: 63.3906px;">Domicile</td><td class="align-center" style="height: 63.3906px;">🏠</td><td class="align-center" style="height: 63.3906px;">Les dossiers personnels des utilisateurs sont stockés ici, chacun ayant son propre répertoire avec son nom d'utilisateur.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/lib</td><td class="align-center" style="height: 63.3906px;">Bibliothèques</td><td class="align-center" style="height: 63.3906px;">📚</td><td class="align-center" style="height: 63.3906px;">Les bibliothèques partagées essentielles pour le fonctionnement du système se trouvent ici.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/media</td><td class="align-center" style="height: 63.3906px;">Média</td><td class="align-center" style="height: 63.3906px;">💿</td><td class="align-center" style="height: 63.3906px;">Les périphériques externes tels que les clés USB et les disques optiques sont montés ici.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/mnt</td><td class="align-center" style="height: 63.3906px;">Montage</td><td class="align-center" style="height: 63.3906px;">🧲</td><td class="align-center" style="height: 63.3906px;">Ce répertoire est utilisé pour monter temporairement des systèmes de fichiers, tels que des lecteurs réseau.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/opt</td><td class="align-center" style="height: 63.3906px;">Optionnel</td><td class="align-center" style="height: 63.3906px;">📦</td><td class="align-center" style="height: 63.3906px;">Les logiciels tiers, qui ne font pas partie de la distribution par défaut, sont souvent installés ici.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/bin</td><td class="align-center" style="height: 63.3906px;">Binaire</td><td class="align-center" style="height: 63.3906px;">🛠️</td><td class="align-center" style="height: 63.3906px;">Les exécutables essentiels du système, utilisables par tous les utilisateurs, sont stockés ici.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/sbin</td><td class="align-center" style="height: 63.3906px;">Super Binaire</td><td class="align-center" style="height: 63.3906px;">🔧</td><td class="align-center" style="height: 63.3906px;">C'est l'emplacement des programmes essentiels destinés à l'administrateur système.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/srv</td><td class="align-center" style="height: 63.3906px;">Service</td><td class="align-center" style="height: 63.3906px;">🌐</td><td class="align-center" style="height: 63.3906px;">Les données de service, telles que les fichiers de site Web, peuvent être stockées ici.</td></tr><tr style="height: 63.3906px;"><td class="align-center" style="height: 63.3906px;">/tmp</td><td class="align-center" style="height: 63.3906px;">Temporaire</td><td class="align-center" style="height: 63.3906px;">🌡️</td><td class="align-center" style="height: 63.3906px;">Les fichiers temporaires sont stockés ici, mais ce répertoire est nettoyé au démarrage.</td></tr><tr style="height: 96.9844px;"><td class="align-center" style="height: 96.9844px;">/var

</td><td class="align-center" style="height: 96.9844px;">Variables

</td><td class="align-center" style="height: 96.9844px;">🔄

</td><td class="align-center" style="height: 96.9844px;">Les données variables telles que les journaux, les bases de données et les fichiers temporaires résident ici. Il est essentiel pour surveiller l'état du système.</td></tr></tbody></table>

# [Fondamentaux] Cron

## Introduction

Cron est un **planificateur de tâche** disponible sur les distributions Linux.

Il peut permettre l’exécution de binaire ou de script notamment pour vos sauvegardes ou vos programmes.

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/scaled-1680-/ecQimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/ecQimage.png)

## Configuration

Cron se configure depuis le fichier **/etc/crontab** où chaque ligne est une tâche planifiée. Voici un pense bête explicatif :

[![cron.jpeg](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/scaled-1680-/cron.jpeg)](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/cron.jpeg)

# [Fondamentaux] Gestion des droits

## Introduction

Linux permet une gestion fine des droits sur les fichiers et les dossiers du système. Cette page ne traitera pas de sudo qui a déjà une page dédiée.

## Commandes

#### ls -l

Permet d'afficher le ou les fichiers avec leurs droits associés :

```bash
ls -l
total 38588
-rw-r--r-- 1 elieroc elieroc   165711  7 oct.  21:32  acl.jpeg
-rw-r--r-- 1 elieroc elieroc   133769  3 oct.  20:44  AGEFIPH.pdf
-rw-r--r-- 1 elieroc elieroc   339479 25 sept. 23:03 'Block devices.pdf'
-rw-r--r-- 1 elieroc elieroc 29345747 27 sept. 20:12 'CCNA Trimestre 1 Partie 1.pdf'
-rw-r--r-- 1 elieroc elieroc   296675  7 oct.  21:32  cron.jpeg
-rw-r--r-- 1 elieroc elieroc   546179 26 sept. 21:50 'DNS Bind.pdf'
-rw-r--r-- 1 elieroc elieroc  1630995  7 oct.  21:31  filesystem.gif
-rw-r--r-- 1 elieroc elieroc   126952  7 oct.  21:39  gnu.png
-rw-r--r-- 1 elieroc elieroc    32858  3 oct.  20:40 'ITRUST - Analyste Threat Intelligence H_F.docx'
-rw-r--r-- 1 elieroc elieroc  1597123  7 oct.  21:31  kerberos.gif
-rw-r--r-- 1 elieroc elieroc   319746 25 sept. 22:20 'Le pain quotidien.pdf'
-rw-r--r-- 1 elieroc elieroc   144785 27 sept. 22:24  marteau.jpg
-rw-r--r-- 1 elieroc elieroc  4428842 25 sept. 21:44  RAID.pdf
-rw-r--r-- 1 elieroc elieroc   259856 25 sept. 21:51 'Système de fichier.pdf'
drwxr-xr-x 1 elieroc elieroc     1054 25 sept. 22:22 'TP remise à niveau + corrigés'
-rw-r--r-- 1 elieroc elieroc    93176 25 sept. 22:22 'TP remise à niveau + corrigés.zip'
-rw-r--r-- 1 elieroc elieroc    17688  7 oct.  21:40  tux.webp
```

La première colonne indique les droits et le type de fichier, la troisième indique l'utilisateur propriétaire et la quatrième le groupe propriétaire.

Voici le fonctionnement de la première colonne :

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/scaled-1680-/9HPimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/9HPimage.png)

#### Chown

Permet de définir le propriétaire du fichier.

```bash
chown [-R] <USER>:<GROUP> <FILE|DIRECTORY>
```

<span style="text-decoration: underline;">Remarque :</span> L'option **-R** permet la récursivité et ainsi d'appliquer l'opération à tous les fichiers et dossiers contenus dans le dossier indiqué.

#### Chmod

Permet de définir les droits du fichier.

```bash
chmod [-R] <RIGHTS> <FILE>
```

Le champ RIGHTS doit être remplacé par un motif spécifique désignant les droits que vous souhaitez affecter :

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/scaled-1680-/zZsimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/zZsimage.png)

 Voici un exemple :

```bash
chmod -R w-- myDirectory/
```

Ici, on autorise seulement le propriétaire à pouvoir modifier tous les fichiers et dossiers contenus dans le dossier **myDirectory** (et le dossier lui-même).

#### ACL

Ils permettent de définir des droits spécifiques à des utilisateurs ou des groupes d'utilisateurs :

[![acl.jpeg](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/scaled-1680-/acl.jpeg)](https://wiki.neopipe.fr/uploads/images/gallery/2023-10/acl.jpeg)

# [Fondamentaux] Tester la connectivité entre deux machines

## Introduction

À des fins de diagnostic réseau, il peut être utile de tester un flux.

Pour cela, vous pouvez utiliser le protocole ICMP ou netcat et nmap pour des flux TCP/UDP.

## TCPdump

Commencez par installer le paquet **tcpdump** :

```bash
sudo apt install -y tcpdump
```

Pour l'exemple, nous allons tester la connectivité entre une prmeière machine qui a pour IP **192.168.192.1** et une deuxième machine qui a pour IP **192.168.192.129**.

On va donc écouter les requêtes ICMP grâce à tcpdump avec la commande suivante sur la deuxième machine :

```bash
tcpdump icmp -i <INTERFACE>
```

Puis on peut lancer un ping sur la première machine :

```bash
ping 192.168.192.129
```

## Netcat

Installez **netcat** :

```bash
sudo apt install -y netcat
```

#### TCP

Pour tester un flux TCP sur un port particulier vous pouvez utiliser la commande suivant :

```bash
nc -zv <IP> <PORT>
```

#### UDP

Pour tester un flux UDP sur un port particulier vous pouvez utiliser la commande suivant :

```bash
nc -zv -u <IP> <PORT>
```

## Nmap

Installez **nmap** :

```bash
sudo apt install -y nmap
```

#### TCP

```bash
nmap -p <PORT> <IP>
```

#### UDP

```bash
nmap -sU -p <PORT> <IP>
```

# [Fondammentaux] Partitionnement

## Introduction

Le partitionnement sous Linux est essentiel et permet de "découper" votre disque.

Ici pour l'exemple nous allons créer une simple partition primaire au format ext4 sur le disque /dev/sda.

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2024-03/scaled-1680-/nZdimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2024-03/nZdimage.png)

## Manuel

#### Création de la partition

On peut faire avec **parted** :

```bash
parted /dev/sda mklabel gpt mkpart <LABEL> ext4 1MiB 100%
```

<p class="callout info">Remplacez **&lt;LABEL&gt;** par le nom que vous souhaitez donner à votre partition.</p>

On peut aussi faire avec **fdisk** :

```bash
fdisk /dev/sda
```

Puis exécutez cette enchaînement de touche :

**N / P / ENTER / ENTER / ENTER / T / FD / W**

#### Formatage de la partition

```bash
mkfs.ext4 /dev/sda
```

#### Ajout de la persistence du point de montage

Afin de rendre persistent le montage de notre partition sur le système, nous devons modifier le fichier /etc/fstab pour y ajouter l'entrée due à notre partition :

```
/dev/sda1    /mnt/myPart    ext4    defaults    0    0
```

On peut lancer la commande suivante pour vérifier qu'il n'y a pas d'erreur de syntaxe :

```bash
mount -a
```

Et on peut recharger la configuration du fichier pour monter notre partition :

```bash
systemctl daemon-reload
```