77 lines
2.5 KiB
Markdown
77 lines
2.5 KiB
Markdown
# Changer le nom d'un ordinateur
|
|
|
|
Sur une installation fraîche (par exemple un Raspberry Pi dont le nom par défaut est `raspberrypi`), il est souvent utile de personnaliser le nom de la machine. Cet article décrit les différentes méthodes pour le faire sous Linux.
|
|
|
|
Dans les blocs de code ci-dessous, deux variables sont utilisées :
|
|
|
|
- `$CURRENT_HOSTNAME` : le nom actuel de la machine
|
|
- `$NEW_HOSTNAME` : le nouveau nom souhaité
|
|
|
|
## Règles de nommage
|
|
|
|
Un nom de machine valide doit respecter les contraintes suivantes :
|
|
|
|
- caractères autorisés : lettres `[a-zA-Z]`, chiffres `[0-9]` et tiret `-` ;
|
|
- il ne doit **ni commencer ni finir** par un tiret ;
|
|
- la casse n'est pas significative.
|
|
|
|
## Récupérer le nom courant
|
|
|
|
Deux méthodes équivalentes permettent de connaître le nom actuel :
|
|
|
|
```bash
|
|
cat /etc/hostname
|
|
```
|
|
|
|
ou
|
|
|
|
```bash
|
|
hostname
|
|
```
|
|
|
|
Dans un script, on peut stocker cette valeur en supprimant au passage les caractères indésirables (espaces, tabulations, retours à la ligne) :
|
|
|
|
```bash
|
|
CURRENT_HOSTNAME=$(tr -d " \t\n\r" < /etc/hostname)
|
|
```
|
|
|
|
## Changer le nom de la machine
|
|
|
|
### Méthode recommandée : `hostnamectl`
|
|
|
|
La commande `hostnamectl` modifie le nom de la machine avec une prise en compte immédiate au niveau système. Une simple déconnexion / reconnexion suffit pour que le shell reflète le changement, sans redémarrage.
|
|
|
|
```bash
|
|
sudo hostnamectl set-hostname $NEW_HOSTNAME
|
|
```
|
|
|
|
### Méthode alternative : édition directe de `/etc/hostname`
|
|
|
|
Il est également possible d'écrire directement la nouvelle valeur dans `/etc/hostname`. Un redémarrage est alors nécessaire :
|
|
|
|
```bash
|
|
echo $NEW_HOSTNAME | sudo tee /etc/hostname
|
|
```
|
|
|
|
## Mettre à jour le fichier `/etc/hosts`
|
|
|
|
Pour éviter les avertissements de résolution locale, il faut également remplacer l'ancien nom dans `/etc/hosts` :
|
|
|
|
```bash
|
|
sudo sed -i "s/127.0.1.1.*$CURRENT_HOSTNAME/127.0.1.1\t$NEW_HOSTNAME/g" /etc/hosts
|
|
```
|
|
|
|
## Associer le nom au DNS / NIC
|
|
|
|
Si la machine est référencée sur un DNS local (par exemple via la box Internet ou un serveur DNS interne), pensez à mettre à jour l'association entre le nouveau nom et l'adresse IP. La capture ci-dessous illustre cette opération :
|
|
|
|

|
|
|
|
## Prise en compte des modifications
|
|
|
|
- Avec `hostnamectl` : déconnectez puis reconnectez votre session.
|
|
- Avec une édition manuelle de `/etc/hostname` ou `/etc/hosts` : redémarrez la machine.
|
|
|
|
---
|
|
|
|
*Source : [@whiterabbit441 sur Twitter](https://twitter.com/whiterabbit441/status/1226116907306078208)* |