特定用户的组信息报告错误

dte*_*ech 5 users nis group

我管理的服务器出现问题。帐户(特别是我的帐户)似乎没有正确的组。我认为通过查看以下命令序列最容易证明该问题:

Last login: sometime from somewhere
user.x@srv:~$ groups
user.x
user.x@srv:~$ groups user.x
user.x : user.x grp1 grp2
user.x@srv:~$ su - user.x
Password:
user.x@srv:~$ groups
user.x grp1 grp2
user.x@srv:~$ exit
user.x@srv:~$ groups
user.x
Run Code Online (Sandbox Code Playgroud)

所以问题是user.x的组在登录后(通过SSH)报错了。如果再次模拟登录 ( su -) 或使用groupsorid命令提供用户名,则它工作正常。

不正确的组会导致各种问题,例如无法 sudo。我怎样才能解决这个问题?

可能相关的更多信息:

  • 服务器是 NIS 客户端,每 15 分钟同步一次
  • 这个问题很罕见,但不是唯一的,目前有 2 个用户在过去半年中获得了它
  • 这个问题似乎只发生在经常通过 SSH 进入机器的用户身上

dte*_*ech 1

问题是组信息首先从 nis 中提取,然后从 nis 的本地副本(由 ypserv 制作)中提取

解决方案是将 /etc/nsswitch.conf 更改为

group: compat
Run Code Online (Sandbox Code Playgroud)

到:

group: files nis compat
Run Code Online (Sandbox Code Playgroud)