So ändern Sie den Hostnamen in Fedora 21 dauerhaft

35

Ich habe gehört, dass das Ändern des Hostnamens in neuen Versionen von Fedora mit dem hostnamectlBefehl erfolgt. Außerdem habe ich kürzlich (und erfolgreich) meinen Hostnamen unter Arch Linux mit dieser Methode geändert. Beim Laufen jedoch:

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

Die Änderungen bleiben nach einem Neustart nicht erhalten (im Gegensatz zu den Behauptungen vieler Leute). Was ist falsch?

  • Ich möchte wirklich nicht /etc/hostnamemanuell bearbeiten .

Ich sollte auch beachten, dass dies ein komplett aktueller Fedora ist. Ich bin noch nicht einmal dazu gekommen, meine Kern-Apps zu installieren.

PythonNut
quelle
In der Tat ist dies eine meiner Quellen. Jedoch funktionierte keine der Lösungen, die ich von dieser Seite extrahieren konnte ...
PythonNut
Wie kürzlich haben Sie dieses System installiert / eingerichtet? War das Problem seit der Installation vorhanden? Gibt es auch irgendwelche Fehler mit diesen hostnamectlBefehlen? Der Link zum Bugzilla-Bug, den etwas gepostet hat, scheint Ihr bester Hinweis zu sein.
SLM
Ich habe am 01.10.14 installiert, und seitdem haben die hostnamectlBefehle nicht funktioniert, aber jetzt tun sie es.
PythonNut
Der in der akzeptierten Lösung enthaltene Fehler war nur ein unglücklicher Zeitpunkt für Sie. Sie haben es stromaufwärts repariert und es sollte sich für zukünftige Benutzer als nützlich erweisen.
slm

Antworten:

39

Der Befehl zum Festlegen des Hostnamens lautet definitiv hostnamectl.

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

Im Folgenden finden Sie eine zusätzliche Quelle, die diese Funktionalität ein wenig ausführlicher beschreibt: Festlegen des Hostnamens - Fedora 20 auf Amazon EC2 .

Zusätzlich die Manpage für 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.

Es gibt einen Fehler in Fedora 21, bei dem SELinux den Zugriff auf Hostnamen verhindert. Dieser lautet : Bug 1133368 - SELinux verhindert, dass systemd-hostnam die Verknüpfung für Zugriffe auf den Datei-Hostnamen aufhebt .

Dieser Fehler scheint in Beziehung zu stehen. Es gibt ein Problem mit den SELinux-Kontexten, die /etc/hostnamebei der Installation nicht ordnungsgemäß auf die Datei angewendet werden . Dies äußert sich darin, dass das Tool hostnamectldie Datei nicht manipulieren kann /etc/hostname. Derselbe Thread bot diese Problemumgehung an:

$sudo restorecon -v /etc/hostname

HINWEIS: Diese Patches wurden auf Anaconda (das Installationstool) angewendet, sodass dieses Problem in Zukunft für neue Benutzer behoben werden sollte.

etwas etwas
quelle
3

Die wahrscheinliche Ursache hierfür ist Ihr DHCP-Client. Wenn Sie, wie üblich, dhcpcd verwenden, besteht die Lösung darin, die folgende Zeile hinzuzufügen /etc/dhcpcd.conf:

nohook hostname

Dies verhindert, dass dhcpcd das Skript aufruft, das Ihren Systemhostnamen ändert.

Standardmäßig führt dhcpcd alle vorhandenen Hooks aus /lib/dhcpcd/dhcpcd-run-hooks(der Pfad kann auf Ihrem System unterschiedlich sein). Mit nohookdeaktivieren Sie bestimmte.

Patrick
quelle
1
Für meine 21 und Rohleder-Installationen /etc/dhcpd.confgibt es nicht. Darüber hinaus systemctl status dhcpcdkehrtnot-found (Reason: No such file or directory)
PythonNut