Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

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

Полное доменное имя

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

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

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

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

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


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