Nis

NIS 使用者突然無法登錄 SSH

  • May 31, 2019

我最近在我的 NIS 中添加了一個新的(客戶端)伺服器。一個月左右這工作正常,但從今天開始我突然無法再通過 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地圖沒有被轉移。

執行yppush passwd.byuidnismaster出現超時錯誤並在faultyserv‘s中生成以下內容/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

重新執行/usr/lib/yp/ypinit -s nismaster解決faultyserv了問題

引用自:https://serverfault.com/questions/625326