Как навсегда изменить имя хоста в Fedora 21

Как навсегда изменить имя хоста в Fedora 21

Я слышал, что изменение имени хоста в новых версиях Fedora выполняется с помощью hostnamectlкоманды. Кроме того, я недавно (и успешно) изменил свое имя хоста в Arch Linux с помощью этого метода. Однако при запуске:

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

Изменения не сохраняются после перезагрузки (вопреки утверждениям многих людей, что это так). Что не так?

  • яДействительноне хочу редактировать /etc/hostnameвручную.

Я также должен отметить, что этополностьюстоковая федора. Я даже еще не успел установить основные приложения.

решение1

Команда для установки имени хоста — это, безусловно, hostnamectl.

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

Вот дополнительный источник, который описывает эту функциональность немного подробнее:Правильная настройка имени хоста - Fedora 20 на Amazon EC2.

Дополнительно страница руководства для 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.

В Fedora 21 есть ошибка, из-за которой SELinux блокирует доступ hostnamectl, найденная здесь, под названием:Ошибка 1133368 — SELinux не позволяет systemd-hostnam «отключать» доступ к файлу hostname.

Эта ошибка, похоже, связана. Проблема в том, что контексты SELinux не применяются должным образом к файлу /etc/hostnameпри установке. Это проявляется в том, что инструмент hostnamectlне может манипулировать файлом /etc/hostname. В той же теме предлагалось следующее решение:

$sudo restorecon -v /etc/hostname

ПРИМЕЧАНИЕ:Что для Anaconda (инструмента установки) были применены исправления, так что эта проблема должна исчезнуть в будущем для новых пользователей.

решение2

Вероятная причина этого — ваш клиент dhcp. Если вы используете dhcpcd, что является обычным явлением, решением будет добавить следующую строку в /etc/dhcpcd.conf:

nohook hostname

Это не позволит dhcpcd вызывать скрипт, который изменяет имя хоста вашей системы.

По умолчанию dhcpcd запускает все имеющиеся хуки /lib/dhcpcd/dhcpcd-run-hooks(путь может отличаться в вашей системе). Использование nohookотключает определенные.

Связанный контент