Comment changer définitivement le nom d'hôte dans Fedora 21

35

J'ai entendu dire que la commande permet de changer le nom d'hôte dans les nouvelles versions de fedora hostnamectl. De plus, j'ai récemment (et réussi) changé mon nom d'hôte sur Arch Linux avec cette méthode. Cependant, lors de l'exécution:

[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain

Les modifications ne sont pas conservées après un redémarrage (contrairement à ce que prétendent beaucoup de gens). Qu'est-ce qui ne va pas?

  • Je ne veux vraiment pas éditer /etc/hostnamemanuellement.

Je devrais également noter que ceci est un fedora complètement stock. Je n'ai même pas encore eu le temps d'installer mes applications principales.

PythonNut
la source
Cela présentait également des informations similaires sur le problème: ask.fedoraproject.org/en/question/37413/… & this: dbaora.com/install-fedora-20
slm
En effet, c'est l'une de mes sources. Cependant, aucune des solutions que j'ai pu extraire de cette page n'a fonctionné ...
PythonNut
Avez-vous récemment installé / configuré ce système? Le problème est-il présent depuis l'installation? Aussi y at-il des erreurs avec ces hostnamectlcommandes? Le lien vers le bug de bugzilla que quelque chose a posté semble être votre meilleure piste.
slm
J'ai installé le 01/10/14, et depuis lors, les hostnamectlcommandes ne fonctionnent pas, mais maintenant, elles fonctionnent.
PythonNut
Le bogue lié à la solution acceptée n’était qu’un malheureux moment pour vous. Ils l'ont corrigé en amont et il devrait être efficace pour les futurs utilisateurs.
slm

Réponses:

39

La commande pour définir le nom d' hôte est sans aucun doute, hostnamectl.

root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"

Voici une source supplémentaire décrivant un peu plus cette fonctionnalité, intitulée: Définition correcte du nom d'hôte - Fedora 20 sur Amazon EC2 .

De plus, la page de manuel pour hostnamectl:

HOSTNAMECTL(1)                    hostnamectl                   HOSTNAMECTL(1)

NAME
       hostnamectl - Control the system hostname

SYNOPSIS
       hostnamectl [OPTIONS...] {COMMAND}

DESCRIPTION
       hostnamectl may be used to query and change the system hostname and
       related settings.

       This tool distinguishes three different hostnames: the high-level
       "pretty" hostname which might include all kinds of special characters
       (e.g. "Lennart's Laptop"), the static hostname which is used to
       initialize the kernel hostname at boot (e.g. "lennarts-laptop"), and
       the transient hostname which is a default received from network
       configuration. If a static hostname is set, and is valid (something
       other than localhost), then the transient hostname is not used.

       Note that the pretty hostname has little restrictions on the characters
       used, while the static and transient hostnames are limited to the
       usually accepted characters of Internet domain names.

       The static hostname is stored in /etc/hostname, see hostname(5) for
       more information. The pretty hostname, chassis type, and icon name are
       stored in /etc/machine-info, see machine-info(5).

       Use systemd-firstboot(1) to initialize the system host name for mounted
       (but not booted) system images.

Il y a un bogue dans Fedora 21 dans lequel SELinux empêche l'accès à hostnamectl, trouvé ici: Bug 1133368 - SELinux empêche systemd-hostnam d'accéder de manière non liée au fichier nomhôte .

Ce bug semble être lié. Il y a un problème avec les contextes SELinux qui ne sont pas appliqués correctement au fichier /etc/hostnamelors de l'installation. Cela se manifeste par le fait que l'outil hostnamectlne peut pas manipuler le fichier /etc/hostname. Ce même fil a offert cette solution de contournement:

$sudo restorecon -v /etc/hostname

REMARQUE: les correctifs ont été appliqués à Anaconda (l'outil d'installation) afin que ce problème disparaisse dans le futur pour les nouveaux utilisateurs.

quelque chose quelque chose
la source
3

La cause probable de ceci est votre client DHCP. Si vous utilisez dhcpcd, ce qui est courant, la solution consiste à ajouter la ligne suivante à /etc/dhcpcd.conf:

nohook hostname

Cela empêche dhcpcd d’appeler le script qui change le nom d’hôte de votre système.

Par défaut, dhcpcd exécute tous les hooks présents /lib/dhcpcd/dhcpcd-run-hooks(le chemin peut être différent sur votre système). L'utilisation nohookdésactive des spécifiques.

Patrick
la source
1
Pour mes installations 21 et rawhide, /etc/dhcpd.confn'existe pas. En outre, systemctl status dhcpcdretournenot-found (Reason: No such file or directory)
PythonNut