GNU/Linux >> Tutoriels Linux >  >> Linux

Comment changer l'identité d'un système Linux

J'aimerais vous montrer un tour de magie. Accédez à votre invite de shell préférée et tapez :

[skipworthy@showme ~]$ hostname
showme

Le hostname La commande est fournie sous Linux pour interroger "qui" l'ordinateur pense qu'il est. Comment est-ce arrivé? Comment mon ordinateur sait-il comment il s'appelle ? Je vais vous montrer un peu comment l'astuce est exécutée, mais d'abord, laissez-moi vous en montrer une autre :

[root@showme skipworthy]# hostnamectl set-hostname spot
[root@showme skipworthy]# hostname
spot

Merci encore à systemd (qui est implémenté dans la plupart des distributions GNU/Linux modernes, mais pas toutes, y compris les systèmes basés sur Red Hat) changer le nom de votre ordinateur Linux est assez facile. (Au fait, le nom dans l'invite changera avec la prochaine connexion.) J'ai expliqué comment DNS nous permet d'identifier un ordinateur sur le réseau en mappant un nom sur une adresse IP. C'est de l'autre côté. Ici, vous regardez comment la machine s'identifie, ce qui est important pour que des choses comme l'authentification fonctionnent correctement si l'ordinateur fait partie d'un domaine.

[ Vous aimerez peut-être également lire : 10 commandes Linux de base que vous devez connaître ]

Une fois le matériel énuméré et les pilotes chargés au démarrage, sur une distribution basée sur systemd, le chargeur de démarrage charge et exécute le systemd scripts. Le début de ce processus est lorsque le nom d'hôte est défini :

  2.653601] rtc_cmos 00:00: setting system clock to 2020-11-17 19:36:44 UTC (
1605641804)
[  2.654885] Freeing unused kernel memory: 1980k freed
[  2.655179] Write protecting the kernel read-only data: 12288k
[  2.657125] Freeing unused kernel memory: 416k freed
[  2.658710] Freeing unused kernel memory: 552k freed
[  2.663220] random: systemd: uninitialized urandom read (16 bytes read)
[  2.663530] random: systemd: uninitialized urandom read (16 bytes read)
[  2.663543] random: systemd: uninitialized urandom read (16 bytes read)
[  2.667147] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SEL
INUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +
XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[  2.667189] systemd[1]: Detected virtualization kvm.
[  2.667200] systemd[1]: Detected architecture x86-64.
[  2.667204] systemd[1]: Running in initial RAM disk.
[  2.667250] systemd[1]: Set hostname to <showme>.
[  2.701020] random: systemd: uninitialized urandom read (16 bytes read)

En dehors de cela, dans les systèmes où systemd ne gère pas l'espace utilisateur, vous pouvez configurer le nom d'hôte dans quelques fichiers. Ces fichiers sont en fait où systemd recherche ces informations et les enregistre lorsque vous utilisez le hostnamectl commande. Le hostname et hostnamectl les commandes utilisent en fait des appels système au niveau du noyau nommés gethostname , getdomainname , et certaines fonctions fournies par le resolver appel système. Celles-ci existent depuis assez tôt dans l'histoire du noyau Linux. Ce sont les mêmes appels système utilisés par le shell pour renseigner le nom de la machine dans l'invite, entre autres.

Les deux fichiers que vous allez examiner résident dans /etc , dont vous vous souviendrez qu'il s'agit de l'emplacement par défaut de la plupart des fichiers utilisés pour configurer et gérer un système Linux. Le premier s'appelle, de manière appropriée, /etc/hostname :

[root@showme skipworthy]# cat /etc/hostname
showme

Assez simple :lorsque vous invoquez hostname à partir de l'invite du shell, Linux regarde le /etc/hostname fichier pour la réponse. Vous pouvez également utiliser le hostname commande pour changer le nom de l'ordinateur, mais dans les noyaux gérés par systemd, il est généralement préférable d'utiliser le hostnamectl commande à la place.

L'autre fichier est /etc/hosts , où Linux cherche à traduire les adresses IP en noms avant de vérifier /etc/resolv.conf pour les infos DNS. Voici le /etc/hosts fichier :

[skipworthy@showme ~]$ cat /etc/hosts
127.0.0.1       showme.forest showme
192.168.11.111  showme.forest showme
192.168.0.200      Jupiter
192.168.0.100      uhura

Les premières lignes correspondent à ce que vous voulez examiner. Notez que le format est :

ip address   fqdn alias

Vous disposez donc de l'adresse IP , puis le hostname.domainname (ou Nom de domaine complet ), suivi du nom d'hôte . Vous pouvez également ajouter des alias ou des alias de domaine supplémentaires s'ils sont utilisés dans l'environnement.

Utilisez le -f changer lorsque vous appelez le hostname commande pour voir le FQDN de votre hôte :

[skipworthy@showme ~]$ hostname -f
showme.forest

[ Télécharger maintenant :Un guide de l'administrateur système sur les scripts Bash. ] 

Le hostnamectl La commande a d'autres commutateurs et drapeaux intéressants et utiles :vous pouvez définir le type d'environnement (développement ou production, par exemple), et vous pouvez même mettre des notes d'emplacement (rack 3, salle 200, par exemple). Vous pouvez les interroger et les définir à distance. Comme d'habitude, vous pouvez apprendre toutes sortes de choses intéressantes à partir des bonnes vieilles pages de manuel.


Linux
  1. Comment changer la couleur de votre terminal Linux

  2. Comment changer les paramètres régionaux du système sur RHEL7 Linux

  3. Comment définir ou modifier le nom d'hôte du système sous Linux

  4. Comment changer le nom d'hôte sous Linux

  5. Comment changer la variable PATH sous Linux

Comment changer l'invite Sudo sous Linux

Comment changer le shell par défaut dans le système Linux

Comment utiliser la commande fd sur le système Linux

Comment changer le mot de passe root sous Linux

Comment changer le nom d'hôte sur Debian Linux

Comment changer le nom d'utilisateur et le nom d'hôte sur le système Linux