CentOS su 切换用户报“id: 无法找到ID 为xxx 的用户的属组”

1、问题说明
root账号上没有任何问题,也不影响服务器各功能正常使用,但是我使用su 切换任何账号,比如:su www 都会报错,说找不到ID为xxx的用户组。

2、问题出现过程
同事在服务器上的预发环境项目上改了代码,git commit 提交。因为服务器上使用的是部署公钥(只读),所以无法push,后来找我查看原因,当时就出现了“id: 无法找到ID 为xxx 的用户的属组”这一类的错误,同时项目所有文件使用ll命令查看对应的组都是id显示(使用root账号ll查看都正常,切换任何一个子账号查看都有值显示组id)。
图片描述
具体出现过程通过同事的口头述说就这个样子。

3、尝试了这些方法:

① 新建用户同样报错,并不是组信息丢失(本想着删除账号再重新添加)

[root@W01 ~]# id
uid=0(root) gid=0(root) 组=0(root),503(beta)
[root@W01 ~]# useradd test
[root@W01 ~]# groups test
test : test
[root@W01 ~]# su test
id: 无法找到ID 为504 的用户的属组
[test@W01 root]$ id
uid=504(test) gid=504 组=504

② 重启了,问题依旧存在

③ 改变组id后,再改回,没用

网上搜了些相关问题都得不到解决方法,求高手指教。

阅读 8.2k
2 个回答

检查 /etc/group 的权限(如果没有改用其它组数据库的话)。

问题解决了,通过 运维生存时间群里 求助解决的 感谢群里的 北京-小峰 、重庆-晨兮-专修楼房漏水-治不孕不育 、帝都-十四 、上海-萝莉被大叔猥琐[文件].avi 、上海-专业删数据 的帮忙

[root@W01 ~]# ll /etc/group
-rw------- 1 root 0 701 2月   8 14:41 /etc/group
[root@W01 ~]# ll /etc/passwd
-rw-r--r-- 1 root 0 1472 2月   8 14:41 /etc/passwd

发现/etc/group 权限不对

chmod 644 /etc/group 即解决问题

至于为什么会出现这样的问题,还没找到。知道解决方法了后,那我尽量多去尝试问题还原,看看是哪个环节出错,到时候找到出现问题的地方再来这边告知。以防别的朋友踩坑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题