web-dev-qa-db-ja.com

SuSEの/ etc / HOSTNAME:短い名前またはFQDN?

ファイル /etc/HOSTNAMESuSE-Linuxではホスト名が含まれています。

これは完全修飾ドメイン名にする必要がありますか、それとも短い名前( "。"なし)にする必要がありますか?

関連する質問: socket.getfqdn()はドメインを返しませんが、socket.gethostname()は返しますか?

1
guettli

大文字の_/etc/HOSTNAME_はSuSeシステムに固有ですが、小文字のファイル名_/etc/hostname_へのシンボリックリンクである必要があります。 systemdによるため、他のディストリビューションにも存在する必要があります。

推奨されるsystemdユーティリティ hostnamectl は、3つの異なるホスト名を区別します。

  1. _/etc/machine-info_ に格納されている、あらゆる種類の特殊文字( "Lennart's Laptop"など)を含む可能性のある高レベルの「きれいな」ホスト名
  2. 起動時にカーネルホスト名を初期化するために使用される静的ホスト名(「lennarts-laptop」など)。これは_/etc/hostname_に格納されます。

  3. ネットワーク構成から受信したデフォルトの一時ホスト名。

ホスト名構成ファイルのマニュアルページ _man 5 hostname_ は、実際にはFQDNという用語を明示的に使用していませんが、次のように述べています。

_/etc/hostname_ファイルは、sethostname(2)システムコールを使用して起動中に設定されるローカルシステムの名前を設定します。これには、改行で終了する単一のホスト名文字列が含まれている必要があります。
コメント(「#」で始まる行)は無視されます。
ホスト名は、最大64文字の自由形式の文字列にすることができます。ただし、7ビットのみで構成することをお勧めしますASCII小文字で、スペースやドットは含まないであり、厳密な要件ではありませんが、DNSドメイン名ラベルに許可されている形式に制限されます。

ここで、「ドットなし」は、ホスト名ファイルにシステムホスト名コンポーネントのみを含める必要があることを示す唯一のヒントであり、ドメインサフィックスは含まないため、FQDNは含まれません。

hostnameコマンドのマニュアルはより明確です(_man 1 hostname_):

FQDN

この[sic:hostname]コマンドを使用して、FQDN(_hostname --fqdn_によって返される)またはDNSドメイン名を変更することはできません。 システムのFQDNは、ホスト名に対してresolver(3)が返す名前です

つまり、ホスト名はFQDNではありません。

次に、FQDNを構成する方法について説明します。

技術的に:FQDNは、gethostname(2)が返すホスト名に対してgethostbyname(2)が返す名前です。 DNSドメイン名は、最初のドットの後の部分です。

したがって、それを変更する方法(通常は_/etc/Host.conf_内)に依存します。通常(hostsファイルがDNSまたはNISの前に解析される場合)、/ etc/hostsで変更できます。


ところで:_myhost.example.com_などのFQDNをホスト名として使用し、_/etc/hostname_で使用する場合、dnsdomainや_hostname -d_などは空の文字列を返し、その文字列を分割しませんDNSホスト名コンポーネントmyhostとドメイン名コンポーネント_example.com_への最初のドット

1
HBruijn