最近、NISに新しい(クライアント)サーバーを追加しました。 1か月ほどは問題なく動作しましたが、今日から突然SSH経由でログインできなくなりました。同じサーバー上の他のいくつかのサービス(IMAPなど)は正常に機能します。他のNISクライアントは正常に動作しているようです。
SSHセッションは、ログインに成功するとすぐに終了します。
some.nis.user@nismaster:~$ ssh faultyserv
some.nis.usern@faultyserv's password:
Connection to faultyserv closed by remote Host.
Connection to faultyserv closed.
/etc/log/auth.log
に含まれるもの:
Aug 31 12:42:22 faultyserv sshd[27909]: pam_unix(sshd:session): session opened for user some.nis.user by (uid=0)
Aug 31 12:42:22 faultyserv sshd[27909]: fatal: login_get_lastlog: Cannot find account for uid 1234
UseLogin yes
に/etc/ssh/sshd_config
を設定すると、ログインできますが、奇妙なシェルが表示されます。
I have no name!@faultyserv:~$ pwd
/home/s/some.nis.user
I have no name!@faultyserv:~$ Sudo echo
Sudo: unknown uid 1234: who are you?
I have no name!@faultyserv:~$ id some.nis.user
uid=1234 gid=1975(some.nis.user) groups=4294967295,2177(somegroup),/*snip a long grouplist*/
NISに何か問題があると思いますが、これを修正する方法がわかりません。誰かアイデアがありますか?
私の/etc/nsswitch.conf
には(nisのない他のエントリの中で)含まれています:
passwd: files nis
group: files nis
shadow: files nis
netgroup: nis
問題は、passwd.byuid
マップが転送されなかったことです。
nismaster
でyppush passwd.byuid
を実行すると、タイムアウトエラーが発生し、faultyserv
の/var/log/syslog
で次のように生成されました。
Sep 1 09:51:37 faultyserv ypserv[2038]: refuse to transfer passwd.byuid from <ip>, master is faultyserv.mydomain.com)
スレーブサーバーに誤ったマスターサーバーが指定されていました:
# ypwhich -m
services.byservicename nismaster
group.bygid nismaster
group.byname nismaster
protocols.bynumber nismaster
services.byname nismaster
hosts.byname nismaster
netgroup.byhost nismaster
rpc.bynumber nismaster
passwd.byuid faultyserv.mydomain.com
netgroup nismaster
ypservers nismaster
shadow.byname faultyserv.mydomain.com
passwd.byname nismaster
hosts.byaddr nismaster
protocols.byname nismaster
rpc.byname nismaster
netgroup.byuser nismaster
netid.byname faultyserv.mydomain.com
faultyserv
で/usr/lib/yp/ypinit -s nismaster
を再実行すると、問題が修正されました
これは、Debianシステムで使用されているために発生することがあります
# shadowconfig on
これにより、機密性の高いパスワードハッシュがシャドウファイルに配置され、passwdファイルとgroupファイルが同じブランドの「x」エントリで書き換えられます。
Passwdファイルとgroupファイルを再構築する前に、これを行う必要がありますNISマスター上で
# shadowconfig off
Debianではそれは
# cd /var/lib/yp
# make all
clientsのpasswdとgroupに追加する必要のある特別なエントリを忘れないでください。これがpasswdエントリです(postgresのエントリの後)。
postgres:x:115:124:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
+::::::
これがsambashareの後のグループ1です。
sambashare:x:125:
+:::
/etc/nsswitch.confが「nis」について言及しているのと同様に