/ etc / HOSTNAME в SuSE: короткое имя или полное доменное имя?

Файл / etc / HOSTNAME в SuSE-Linux содержит имя хоста.

Это должен быть полный квалифицированный домен имя или короткое имя (без ".")?

Связанный вопрос: socket.getfqdn () не возвращает домен, но socket.gethostname () возвращает?

1
задан 19 June 2019 в 13:45
1 ответ

Обратите внимание, что AFAIK верхний регистр / etc / HOSTNAME специфичен для систем SuSe, но это должна быть символическая ссылка на имя файла в нижнем регистре / etc / hostname , который используется systemd и поэтому должен присутствовать и в других дистрибутивах.

Рекомендуемая утилита systemd hostnamectl различает три разных имени хоста:

  1. высокоуровневое "красивое" имя хоста, которое может включать все виды специальных символов (например, «Ноутбук Леннарта»), который хранится в / etc / machine-info
  2. статическое имя хоста, которое используется для инициализации имя хоста ядра при загрузке (например, "lennarts-laptop"), которое хранится в / etc / hostname

  3. временное имя хоста, которое по умолчанию получено от конфигурация сети.

На странице руководства для файла конфигурации имени хоста man 5 имя хоста на самом деле не используется явно термин FQDN, но указано:

Файл / etc / hostname настраивает имя локальной системы, которая устанавливается во время загрузки с помощью sethostname (2) системный вызов. Он должен содержать одну строку имени хоста, завершающуюся новой строкой.
Комментарии (строки начинающиеся с `# ') игнорируются.
Имя хоста может быть строкой произвольной формы длиной до 64 символов; однако рекомендуется, чтобы он состоял только из 7-битных строчных символов ASCII и не содержал пробелов и точек , и ограничивается форматом, разрешенным для меток доменных имен DNS, хотя это не является строгим

Где « no dots » - это единственный намек на то, что файл имени хоста должен содержать только компонент имени хоста системы, без суффикса домена и, следовательно, не FQDN.

Руководство для команды hostname более явное ( man 1 hostname ):

FQDN

Вы не можете изменить FQDN (возвращенное hostname --fqdn ) или DNS-имя домена с помощью этой [sic: the hostname ] команды. Полное доменное имя системы - это имя, которое преобразователь (3) возвращает для имени хоста.

Другими словами, имя хоста НЕ является полным доменным именем.

И затем о том, как настроить полное доменное имя:

Технически: полное доменное имя - это имя, возвращаемое gethostbyname (2) для имени хоста, возвращаемого gethostname (2). Имя домена DNS - это часть после первой точки.

Следовательно, это зависит от конфигурации (обычно в /etc/host.conf ), как вы можете его изменить. Обычно (если файл hosts анализируется до DNS или NIS) вы можете изменить его в /etc/hosts.


. BTW: если вы действительно используете полное доменное имя, такое как myhost.example.com в качестве имени хоста и в / etc / hostname такие вещи, как dnsdomain и hostname -d , вернут пустые строки и НЕ разделят эту строку по первой точке на компонент имени хоста DNS myhost и компонент доменного имени example.com

1
ответ дан 3 December 2019 в 23:03

Теги

Похожие вопросы