修改linux用户的所属组主要使用usermod命令,分为以下步骤:1. 修改主组使用 -g 参数,如 sudo usermod -g appusers testuser;2. 添加附加组使用 -g 参数,但会覆盖原有附加组,如 sudo usermod -g developers,docker testuser;3. 若需保留原有附加组并追加新组,使用 -ag 参数,如 sudo usermod -ag docker testuser;4. 查看用户所属组可用 groups、id 或 grep 命令验证。操作时需确保具备管理员权限且目标组已存在。
修改linux用户的所属组,主要用到的命令是usermod。这个命令功能强大,可以用来调整用户账户的各种属性,包括所属主组(primary group)和附加组(supplementary groups)。下面我们就来具体看看怎么用。
修改用户的主组:使用 -g 参数
如果你需要把某个用户的主组改掉,用的是-g参数。主组就是用户默认归属的那个组,创建文件时默认的组权限也是从这里来的。
举个例子,假设现在有一个用户叫testuser,你想把他从原来的testgroup改成appusers作为主组,命令应该是这样的:
sudo usermod -g appusers testuser
需要注意几点:
- 要有管理员权限,所以前面加了sudo
- 指定的组必须已经存在,否则会报错
- 修改后,用户以前创建的文件所属组不会自动变,得手动改
给用户添加附加组:使用 -G 参数
除了主组之外,用户还可以属于多个附加组。这时候要用-G参数。比如你想让testuser同时属于developers和docker这两个组:
sudo usermod -G developers,docker testuser
但注意一点:这个操作会覆盖用户当前所有的附加组。也就是说,如果用户之前已经在www-data组里,现在不在了。如果你想保留旧的组,加上新的,就得手动列全。
还有一种情况是你只想加一个新组,不想影响原来的附加组列表,那可以用-aG组合:
sudo usermod -aG docker testuser
这里的-a意思是“append”,追加的意思,配合-G才能实现只加不删的效果。
查看用户当前所属组
改完之后想确认一下效果,可以用groups命令:
groups testuser
或者直接查看/etc/group文件:
grep testuser /etc/group
不过这个文件主要是记录组信息,用户信息还是建议用groups或id命令更直观:
id testuser
这条命令会显示用户的UID、主组GID和所有附加组。
基本上就这些。修改用户组其实不难,关键是要分清楚主组和附加组的区别,还有记得在加组的时候要不要保留原来已有的组。只要这几个点搞清楚了,用usermod就不会出错。