背景
Trevor 作为盒子上的开发人员之一登录他在 ssh://foobar.university.edu 上的帐户,他收到以下消息:
id: cannot find name for group ID 131
Trevor 然后使用以下命令检查这一点
vim /etc/group
问题
特雷弗发现那里是/etc/group 文件中的任何位置都没有 131。
特雷弗然后运行 id ...
> id trevor
uid=4460(trevor) gid=131 groups=48(foobar),51(doobar),131
发现他的主要团体显然没有附加名称。
问题
- 可能发生了什么原因导致 foobar.university.edu 框出现这种情况?
- 假设 Trevor 想要解决这个问题(例如,通过创建一个映射到 GID 131 的“trevor”组),在不破坏服务器上任何其他内容的情况下,最好的方法是什么?
答案1
可能发生的情况是 UID 和 GID 通过 LDAP 提供给服务器。如果该/etc/group
文件不包含 GID 的翻译,则服务器管理员可能无法更新组定义。你能做什么?不多。用户ID由管理员控制。 (现在,如果您碰巧拥有 ROOT 权限,则可以将该组添加到 中/etc/group
。您还应该检查是否有任何其他用户帐户正在使用同一组,如果是,请适当地命名该组)。
答案2
当我的用户“jackson”没有分配组时,就会发生这种情况。我知道我的用户的单独组 id 是 1000(当创建用户$ adduser
且未定义任何参数时,会为该用户分配 999 之外的下一个可用 id。第一个获取 uid 1000 和 gid 1000)。
此警告意味着您的用户不属于某个组,因此您需要做的是将用户添加到组中。要么让你的管理员帮助你,就像@sparticvs提到的那样,或者如果你有root权限/这是你的机器,你可以执行以下操作:
$ addgroup [your_user_name]
$ usermod -a -G [your_user_name] [your_user_name]
这应该可以解决它(未经测试的)
我所做的很简单(先进的)
$ sudo vi /etc/group
- 将行修改
web:x:1001:
为web:x:1000:jackson
这使我的用户jackson
属于该web
组。
仅供参考,如果您不熟悉,vim
我不推荐“高级”步骤,如果您真的非常绝望使用$ sudo nano /etc/group
答案3
如果您运行的虚拟机通常从 LDAP 获取数据但无法连接,也可能会发生这种情况。我确信有办法解决这个问题,但我通常只是在连接再次可用后重新启动它。
答案4
如果您使用 AD 进行身份验证,可能是在 sshd 配置中您没有启用参数auto_private_groups = true
,并且登录操作系统后无法创建私有组,需要 chmod /home/user 来纠正权限。查看:
[domain/YOUR_DOMAIN]
...
# https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/windows_integration_guide/gid-for-ad-users
# virtual private groups
auto_private_groups = true
而不是重新启动sssd
并重新登录。