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

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

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

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

因此,问题是登录(通过 SSH)后错误地报告了 user.x 的组。如果再次模拟登录 ( ) 或通过或命令su -提供用户名,则可以正常工作。groupsid

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

可能相关的更多信息:

  • 服务器是 NIS 客户端,每 15 分钟同步一次
  • 该问题很少见,但并非唯一,目前有 2 位用户在过去半年中遇到了该问题
  • 这个问题似乎只发生在经常通过 SSH 连接到机器的用户身上

答案1

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

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

group: compat

到:

group: files nis compat

答案2

组权限是在创建 shell 时设置的。第一个 shell 的groups输出仅显示user.x,该 shell 是在添加其他组之前创建的吗?如果是这样,只需注销并重新登录即可。

答案3

看起来用户 shell 的配置有问题。检查 shell 的定义方式/etc/passwd,并检查/etc/profile用户的登录脚本(如.bashrc.bash_login.profile)是否有任何错误。如果您找不到任何可以修复该问题的内容,请备份这些文件并恢复默认文件。可能重新安装外壳。

相关内容