web-dev-qa-db-fra.com

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

J'ai entendu dire que changer le nom d'hôte dans les nouvelles versions de Fedora se faisait avec la commande hostnamectl. De plus, j'ai récemment (et avec succès) 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 de nombreuses personnes prétendent que c'est le cas). Qu'est-ce qui ne va pas?

  • Je vraiment je ne veux pas modifier /etc/hostname manuellement.

Je devrais également noter qu'il s'agit d'un complètement stock Fedora. Je n'ai même pas encore réussi à installer mes applications principales.

35
PythonNut

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

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

Voici une source supplémentaire qui décrit 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 de 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 où SELinux empêche l'accès à hostnamectl, trouvé ici, intitulé: Bogue 1133368 - SELinux empêche systemd-hostnam de "dissocier" les accès sur le nom d'hôte du fichier .

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/hostname lors de l'installation. Cela se manifeste dans l'outil hostnamectl ne pouvant pas manipuler le fichier /etc/hostname. Ce même fil a proposé cette solution:

$Sudo restorecon -v /etc/hostname

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

39
somethingSomething

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 modifie 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 différer sur votre système). L'utilisation de nohook en désactive certaines.

4
Patrick