# Présentation
Dans cette procédure, vous allez apprendre à renommer une machine Debian en modifiant son "*hostname*" en ligne de commande. Vous découvrirez les éléments suivants :
- Comment visualiser la configuration existante ?
- Comment renommer la machine en ligne de commande ?
- **Étape 1 :** renommer la machine au niveau du système d'exploitation avec la commande `hostnamectl` ou en modifiant les fichiers `hostname`.
- **Étape 2 :** Mettre à jour le fichier `hosts` impliqué dans les mécanismes de résolution de nom.
> [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Définir un **plan de nommage** simplifie l’identification des équipements, accélère la prise en charge des demandes, des incidents et facilite l’interprétation des métriques. Le nom de la machine peut contenir des informations telles que : le type d'OS, son emplacement, sa date d'achat, etc.</span>
# Comment visualiser la configuration existante ?
## Visualiser le nom grâce au prompt
En règle générale le nom d'une machine Debian s'affiche dans le **prompt**. du Shell Linux. Ce dernier fournit des informations importantes sur le contexte actuel, comme le nom de l'utilisateur, le nom du système, le répertoire de travail courant, et le niveau de privilège. Dans l’exemple de prompt ci-dessus on retrouve :
- `user-debian` : Le nom de l’utilisateur connecté.
- `FRO-DEB12` : Le nom du système ou hostname.
- `/var/log` : Le répertoire de travail courant
- `
ou `#` : Le niveau de privilège, par exemple :
- Le symbole « $ » désigne un **utilisateur standard (non-root)**.
- Le symbole « # » désigne un **utilisateur avec des privilèges root**.
![[_img-kb-lnx-hostname-config.png]]
## Visualiser le nom en ligne de commande
Le nom de la machine peut être affiché à l'aide de plusieurs commandes :
- `cat /etc/hostname` : Ce fichier contient le nom de la machine.
- `hostname` : Commande de base du système, accessible dans `/sbin`.
- `hostnamectl` : Commande avancée pour afficher ou modifier le nom de la machine.
Dans l'exemple ci-dessous, on constate que les 3 commandes renvoient le même résultat, bien que la commande `hostnamectl` apporte de nombreuses informations complémentaires :
![[_img-kb-lnx-hostname-config-1.png]]
# Comment renommer la machine en ligne de commande ?
## Étape 1 : Renommer le système invité
### Option 1 : Utiliser la commande hostnamectl
Utilisez la commande suivante avec des privilèges root, en remplaçant "*DEB12-LAMP*" par le nom souhaité :
```
sudo hostnamectl set-hostname DEB12-LAMP
```
Pour que la modification soit prise en compte au niveau du prompt, vous devrez fermer votre session :
```
exit
```
![[_img-kb-lnx-hostname-config-2.png]]
Ouvrez une nouvelle session et constatez la modification du nom de la machine :
```
hostnamectl
```
Le prompt a été mis à jour également comme on peut le constater dans l'exemple ci-dessous :
![[_img-kb-lnx-hostname-config-3.png]]
> [!danger] Attention !<span style="font-weight: normal; color: var(--text-normal)"> A ce stade la configuration n'est pas terminée, vous devrez manuellement modifier le fichier `/etc/hosts` pour que la procédure soit complète (cf. Étape 2 de cette procédure).</span>
### Option 2 : Modifier les fichiers hostname
Le fichier système `/etc/hostname` contient le nom du PC. Pour le modifier, il faut l'éditer avec des privilèges de super utilisateur :
```
sudo nano /etc/hostname
```
Modifiez le nom de la machine présent dans ce fichier, enregistrez les modifications et fermez le document avec la combinaison de touche `[Ctrl]+[X]`, puis `[Y]` et `[Enter]`.
Contrôlez le contenu du fichier avec la commande :
```
cat /etc/hostname
```
Un redémarrage est nécessaire pour la prise en compte des modifications :
```
sudo reboot
```
> [!danger] Attention !<span style="font-weight: normal; color: var(--text-normal)"> A ce stade la configuration n'est pas terminée, vous devrez manuellement modifier le fichier `/etc/hosts` pour que la procédure soit complète (cf. Étape 2 de cette procédure).</span>
## Étape 2 : Modifier le fichier hosts
Le fichier `/etc/hosts` est le premier fichier consulté dans le cadre des mécanismes de résolution de nom en adresse IP. C’est un simple fichier de configuration éditable au format texte qui contient sur la même ligne une adresse IP associée à un nom de machine et parfois le nom de domaine complet (fqdn).
> [!info] À savoir !<span style="font-weight: normal; color: var(--text-normal)"> Tous les systèmes d'exploitation du marché disposent d'un fichier `hosts`. C'est un héritage du réseau ARPANET, l'ancêtre d'Internet.</span>
Pour afficher le contenu du fichier `hosts` utilisez la commande suivante :
```
cat /etc/hosts
```
Dans l'exemple ci-dessous, on constate que l'ancien nom de la machine "*deb12*" apparait toujours :
![[_img-kb-lnx-hostname-config-4.png]]
Éditez le fichier `/etc/hosts` avec des privilèges super utilisateur :
```
sudo nano /etc/hosts
```
Modifiez le fichier :
- Recherchez toutes les références à l’ancien nom de la machine, par exemple "*deb12*".
- Remplacez-les par le nouveau nom, par exemple "*deb12-lamp*".
- Sauvegardez puis fermer le fichier avec la combinaison de touche `[Ctrl]+[X]`, puis `[Y]` et `[Enter]`.
Contrôlez le contenu du fichier avec la commande `cat /etc/hosts` :
![[_img-kb-lnx-hostname-config-5.png]]
Exécuter la commande suivante pour confirmer le bon fonctionnement du système de résolution de nom :
```
ping deb12-lamp
```
# Conclusion
> [!done] Félicitations ! <span style="font-weight: normal; color: var(--text-normal)"> Vous êtes à présent capable de visualiser et modifier le nom d’hôte de votre machine Linux à l'aide de différentes commandes Bash !</span>
## Ressources
- Debian.org : [Man page – hostnamectl](https://manpages.debian.org/testing/systemd/hostnamectl.1.en.html)
- Tutobox : [Comment changer le nom d’hôte sous Debian 11 avec hostnamectl ?](https://tutobox.fr/commande-hostnamectl-debian-11-changer-nom-hote)