# 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 : ![](20201005-204032.png) ## 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)*