LoginSignup
0
0

More than 1 year has passed since last update.

NISユーザでログインできない原因が、ユーザ情報に指定されたログインシェルの未インストールだった

Posted at

前書き

NISの構築でハマったまま気づかずにいると無限に抜け出せなさそうなある種の落とし穴について書きます。私はかなり長い時間ハマっていました(丸1日くらい)
また、本記事ではNISサーバやNISクライアントの設定について深く突っ込みません。その辺りを詳しく知りたい方は別途調べてください。

サーバーの構成とNISクライアント構成時の参考情報

NISマスターサーバはCentOS 7を使ってもともと構築されていて、NISクライアントをUbuntu18.04を使って設定しようとしていました。CentOSの方にいるユーザの情報を使ってUbuntuにログインするという構成です。

NISクライアントの設定は以下を参考にして実施しました。とても参考になりました。
https://www.server-world.info/query?os=Ubuntu_18.04&p=nis&f=1

なぜログインできなかったのか

これはタイトルの通りで、ユーザ情報に指定されたログインシェルが未インストールだったためです。

NIS設定が正しくてもログインできない

上記リンク先を参考に設定した結果、ypwhich で正しいドメインが表示されるし、ypcat passwd でNISサーバからユーザ情報も正しく持ってこれていて、NISの設定はうまくいっていました。

にもかかわらずログインできない状態でとても不思議だったのですが、結果としてはsshdがログインを拒否していました。

Dec  6 20:50:16 serv sshd[2310]: User user001 not allowed because shell /bin/tcsh does not exist

このログによると「/bin/tcshがいないからuser001のログインは許可できない」とのこと。
そこで、aptをつかってtcshをインストールしてから改めてログインすると、すんなり成功しました。

sudo apt install

諸事情により、NISサーバ(CentOS)では各ユーザのログインシェルが/bin/tcshとなっている環境なのですが、確かに Ubuntu 18.04 インストール直後はtcshが入っていなく、bashがデフォルトの環境でした(もしかしたら特殊かもしれない)。

長時間ハマった理由

ログを見れば一瞬で解決できるのになぜ長時間ハマったかというと、ローカルのpasswdにいるアカウントは普通にSSHログインできたからです。
加えてNISの知識不足もあり、ずっとNISの設定が悪いと思っていたのも理由の一つです。
結局のところしらみつぶしでログを確認し始めてから判明したという感じで、SSHログインのところで問題が発生しているという発想はログを見るまでありませんでした。

まとめ

  • NISユーザが指定しているログインシェルはあらかじめインストールしておこう
  • ログはちゃんと見ましょう(当たり前)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0