【Linux】FQDNの安全な確認方法について検証してみた(CentOS7)


はじめに

以前の記事にてこのようなご質問を頂きました。

【以前の記事】
【Linux】インフラエンジニアの僕が「hostname」コマンドを使わない理由とは?

申し訳ございませんが、FQDNまで考慮しておりませんでした。(業務にてFQDNまで確認するシチュエーションがなかったため。)

せっかくなので、検証してみようと思います。

今回検証するOS等の情報

OSバージョン
[root@tspdev01 ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@tspdev01 ~]#

※事前に/etc/hostnameをこのようにしました。

ホスト名
[root@tspdev01 ~]# cat /etc/hostname
tspdev01.example.com
[root@tspdev01 ~]#



「そもそもrootユーザーでやらないだろ!」
そのような声もよくわかります。(既存サーバには、基本的にrootログインしません。)

しかし、今回は検証用のためrootユーザーでやってみたいと思います。

そもそも、「hostname -f」の出力結果とは?

実行コマンド
hostname -f
実行結果
[root@tspdev01 ~]# hostname -f
tspdev01.example.com
[root@tspdev01 ~]#

実行結果を確認すると、FQDN(tspdev01.example.com)にて表示されております。

他のコマンドで試してみる

他のコマンドでFQDNを確認してみたいと思います。

質問にあったコマンドにて実行

質問にあったコマンドを実行してみる。

実行コマンド
echo `uname -n`.`dnsdomainname`

実行結果は、こんな感じです。

実行結果
[root@tspdev01 ~]# echo `uname -n`.`dnsdomainname`
tspdev01.example.com.example.com
[root@tspdev01 ~]#

結果、ドメインが2回表示されています。

「uname -n」にて実行してみる

こちらのコマンドにて実行

実行コマンド
uname -n

実行結果はこちらになります。

実行結果
[root@tspdev01 ~]# uname -n
tspdev01.example.com
[root@tspdev01 ~]#

FQDNにて表示されました!

ホスト名を短縮名で表示してみる

通常のホスト名の短縮名表示

実行コマンド
hostname -s

実行結果はこちらになります。

実行結果
[root@tspdev01 ~]# hostname -s
tspdev01
[root@tspdev01 ~]#

ホスト名の短縮系のみ表示される。

awkを使った短縮ホスト名確認方法

実行コマンド
uname -n | awk -F "." '{print $1}'

実行結果はこちらになります。

実行結果
[root@tspdev01 ~]# uname -n | awk -F "." '{print $1}'
tspdev01
[root@tspdev01 ~]#

このように、短縮されたホスト名のみ表示させることができます。
tspdev01.example.com.で区切っています。

参考記事
awkの-Fオプションで区切り文字を指定する方法

ドメイン名のみ確認

通常のドメイン名確認方法

実行コマンド
hostname -d

実行結果は、こちらになります。

実行結果
[root@tspdev01 ~]# hostname -d
example.com
[root@tspdev01 ~]#

安全なドメイン名確認方法

実行コマンド
echo `dnsdomainname`

実行結果は、こちらになります。

実行結果
[root@tspdev01 ~]# echo `dnsdomainname`
example.com
[root@tspdev01 ~]#

ドメイン名のみ表示されております。

まとめ

FQDNでの表示方法

uname -n

短縮ホスト名のみ表示

uname -n | awk -F "." '{print $1}'

ドメイン名のみ表示

echo `dnsdomainname`


おそらく、他にも方法があると思われます。
まだまだ勉強不足なので、これからもキャッチアップしていく所存です。