Ubuntu中执行groups命令出现无法识别组ID 1004的问题解决求助
Ubuntu中执行groups命令出现无法识别组ID 1004的问题解决求助
嘿,我来帮你搞定这个问题!这种情况一般是因为你删除sknowed组后,还有用户的账户信息里依然关联着这个已删除组的GID(1004),系统找不到对应的组名,就只能显示数字ID了。咱们一步步来解决:
第一步:找出关联了GID 1004的用户
首先得确认哪个用户还把1004作为主组或者附加组,执行下面两个命令:- 查找主组为1004的用户:
awk -F: '$4 == 1004 {print $1}' /etc/passwd - 查找附加组包含1004的用户:
awk -F: '$NF ~ /1004/ {print $1}' /etc/passwd
你提到
admin用户曾是该组成员,大概率会在结果里看到它。- 查找主组为1004的用户:
第二步:清理用户与1004的关联
根据上面的结果,分两种情况处理:- 如果是主组关联:
给用户指定一个存在的主组(比如常用的users或者sudo组),执行命令:
这里sudo usermod -g users adminusers可以换成你想设置的有效组名或GID。 - 如果是附加组关联:
直接从用户的附加组列表里移除1004,执行:
如果这个命令报错,也可以手动编辑sudo gpasswd -d admin 1004/etc/passwd文件,找到admin的条目,把最后字段里的1004删掉(注意不要破坏其他逗号分隔的组ID)。
- 如果是主组关联:
第三步:检查并清理组配置残留
虽然/etc/group里没有1004了,但/etc/gshadow可能还有残留条目,执行命令检查:grep 1004 /etc/gshadow如果有结果,用文本编辑器(比如
nano)打开/etc/gshadow,删除包含1004的那一行,然后保存退出。第四步:刷新会话生效
最后,你需要重新登录当前用户,或者执行newgrp命令刷新组信息,再运行groups命令,应该就不会再显示1004这个无效组ID了。
备注:内容来源于stack exchange,提问作者spreaderman
相关产品推荐
相关产品推荐

