Come cambiare permanentemente il nome host in Fedora 21


35

Ho sentito che cambiare il nome host nelle nuove versioni di fedora è fatto con il hostnamectlcomando. Inoltre, di recente (e con successo) ho cambiato il mio nome host su Arch Linux con questo metodo. Tuttavia, durante l'esecuzione:

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

Le modifiche non vengono conservate dopo un riavvio (contrariamente alle affermazioni di molte persone che lo fanno). Che c'è?

  • Non voglio davvero modificare /etc/hostnamemanualmente.

Dovrei anche notare che questa è una fedora completamente di serie. Non sono ancora riuscito a installare le mie app principali.


Ciò conteneva informazioni simili anche sul problema: ask.fedoraproject.org/en/question/37413/… e questo: dbaora.com/install-fedora-20
slm

In effetti, questa è una delle mie fonti. Tuttavia, nessuna delle soluzioni che ho potuto estrarre da quella pagina ha funzionato ...
PythonNut

Da quanto tempo hai installato / configurato questo sistema? Il problema è presente dall'installazione? Inoltre ci sono errori con quei hostnamectlcomandi? Il collegamento al bug bugzilla che qualcosa pubblicato sembra il tuo miglior vantaggio.
slm

Ho installato il 01/10/14 e da allora i hostnamectlcomandi non hanno funzionato, ma ora funzionano.
PythonNut,

Il bug collegato alla soluzione accettata è stato solo un momento sfortunato per te. L'hanno riparato a monte e dovrebbe funzionare per i futuri utenti.
slm

Risposte:


39

Il comando per impostare l'hostname è sicuramente, hostnamectl.

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

Ecco un'altra fonte che descrive un po 'di più questa funzionalità, intitolata: Impostazione corretta del nome host - Fedora 20 su Amazon EC2 .

Inoltre la pagina man per 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.

C'è un bug in Fedora 21 in cui SELinux impedisce l'accesso hostnamectl, trovato qui, intitolato: Bug 1133368 - SELinux sta impedendo a systemd-hostnam di 'scollegare' gli accessi sul file hostname .

Questo bug sembra essere correlato. C'è un problema con i contesti SELinux che non vengono applicati correttamente al file /etc/hostnamedurante l'installazione. Ciò si manifesta nello strumento che hostnamectlnon è in grado di manipolare il file /etc/hostname. Lo stesso thread ha offerto questa soluzione alternativa:

$sudo restorecon -v /etc/hostname

NOTA: che le patch sono state applicate ad Anaconda (lo strumento di installazione) in modo che questo problema scompaia in futuro per i nuovi utenti.


3

La causa probabile di ciò è il tuo client dhcp. Se stai usando dhcpcd, che è comune, la soluzione è aggiungere la seguente riga a /etc/dhcpcd.conf:

nohook hostname

Ciò impedisce a dhcpcd di richiamare lo script che modifica il nome host del sistema.

Per impostazione predefinita, dhcpcd esegue tutti gli hook presenti /lib/dhcpcd/dhcpcd-run-hooks(il percorso potrebbe differire sul tuo sistema). L'uso nohookdisabilita quelli specifici.


1
Per entrambe le mie installazioni 21 e rawhide, /etc/dhcpd.confnon esiste. Inoltre, systemctl status dhcpcdrestituiscenot-found (Reason: No such file or directory)
PythonNut il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.