[Debian]ホスト名を変えたら名前解決エラーが出るようになった

わが家のLinuxマシンのホスト名はだいたい戦闘機の名前で統一されていてるのですが (eagle とか raptor とか tomcat とか…)、1つだけ debian (デフォルト) のままのマシンがあったので変更しました。

$sudo vim /etc/hostname

そしたら sudo で怒られるようになりました。

***:~$sudo -i
sudo: unable to resolve host ***
[sudo] password for ***:
***:~#

security information がどうとかいうメールも飛んじゃいます。

スポンサーリンク

解決方法

/etc/hosts ファイルのループバックアドレス (127.0.1.1 の方) のエイリアスをいじらないとこうなります。

127.0.1.1 がちょっとアレって思ったんですが、調べたらちゃんと Debian Reference に説明あった。DHCPでアドレス割り合てしてインストールするとインストーラが勝手に作ってくれるんだって。調べたら hosts のバグだーと言ってる人たちがひっかかったのですが、そういう仕様みたいですよ。

さらーっと実装見てみましたが、sudo は unistd.h の gethostname() で /etc/hosts を毎回参照しに行ってるみたいです。

スポンサーリンク

フォローする