You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04中使用usermod -a -G添加用户到新组不持久化的问题

Ubuntu 22.04中使用usermod -a -G添加用户到新组不持久化的问题

我在Ubuntu 22.04上碰到了一个挺棘手的问题,给大家详细说说情况:

首先,用户fred的初始组权限是这样的:

fred $ sudo -i
root $ id fred
uid=1001(fred) gid=1001(fred) groups=1001(fred),27(sudo)

为了让他能使用VirtualBox相关功能,我用usermod命令把他加到vboxusers组:

root $ usermod -a -G vboxusers fred

执行完后立刻查看,确实已经成功添加了:

root $ id fred
uid=1001(fred) gid=1001(fred) groups=1001(fred),27(sudo),141(vboxusers)

但奇怪的是,当我注销fred的会话再重新登录后,这个组居然不见了:

fred $ sudo -i
root $ id fred
uid=1001(fred) gid=1001(fred) groups=1001(fred),27(sudo)

不过用getent查看组信息时,vboxusers里明明还是有fred的:

fred $ getent groups | grep vboxusers
vboxusers:x:141:fred

更有意思的是,只要手动执行newgrp vboxusers,组权限就会立刻恢复:

fred $ id
uid=1001(fred) gid=1001(fred) groups=1001(fred),27(sudo)

fred $ newgrp vboxusers
fred $ id 
uid=1001(fred) gid=1001(fred) groups=1001(fred),27(sudo),141(vboxusers)

可一旦注销再登录,这个问题又会重复出现...

可能的解决办法

针对这个问题,我整理了几种常见的排查和解决方向,你可以逐一尝试:

  • 彻底清理用户会话:有时候注销操作并没有完全杀死用户的所有进程,导致组信息没有刷新。可以切换到root用户,执行pkill -u fred杀死所有属于fred的进程,再重新登录fred账号试试。
  • 检查PAM配置:Ubuntu的会话管理依赖PAM模块,确保/etc/pam.d/common-session文件中没有阻止组信息更新的配置,必要时可以添加session required pam_mkhomedir.so(如果涉及用户目录初始化),修改后重启PAM服务或直接重启系统。
  • 刷新组缓存:执行grpconv命令同步/etc/group和/etc/gshadow的组数据库信息,之后重新登录用户,让系统加载最新的组权限。
  • 排查远程认证服务:如果你的系统使用了LDAP或者其他远程身份认证服务,需要确认服务端已经同步了组信息,确保本地能正确获取到最新的用户组权限。

备注:内容来源于stack exchange,提问作者Pro West

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:35:31