Linux用户组管理之用户附加组加入组放入组拿出移除移出组 组成员 添加组 修改组 用户组操作 useradd usermod gpasswd
主组(基本组) 和 附加组 的概念
- Linux用户可以有一个主组,和多个附加组
- 一个组可以属于一个用户,并包含多个用户
用户 与 附加组 是平等关系, 一个组可以拥有一些用户成员 , 一个用户也可以加入多个组
useradd
和usermod
可以将多个组对应到一个用户gpasswd
可以将多个用户对应到一个组
添加组,修改组,加入组,人加组,组加人
使用 useradd
命令, 在创建用户时, 顺便加入组
- 在 CentOS7中,
adduser
和useradd
命令功能是相同的,
可以用ll /usr/sbin/adduser
看出adduser
是useradd
的符号连接 - 在 Ubuntu20.04 中 ,
adduser
和useradd
命令功能是不相同的,adduser
会交互式让你输入密码,全名,电话等信息
👇这条命令会在添加新用户的同时,系统自动创建和用户名相同的主组, 并加入一组,二组,三组
参数-G
等同 --groups
# 添加用户,系统自动创建和用户名相同的主组, 并加入一组,二组,三组 , 参数`-G`
sudo useradd -G 一组,二组,三组 小明
sudo useradd --groups 一组,二组,三组 小明
👇这条命令在创建新用户的同时,会将一个已存在的组作为新用户的主组 ,
参数-g
等同 --gid
# 添加用户,并加入指定名称的主组, 组必须已存在,
sudo useradd -g 已经存在的组名或组id 用户名
sudo useradd --gid 已经存在的组名或组id 用户名
useradd
的 -g
和-G
可以同时使用, 创建用户的同时指定一个主组和多个附加组
sudo useradd -g 主组 -G 附加组1,附加组2,附加组3 用户名
useradd
的-G
如同 usermod
的-aG
; useradd肯定是只能是追加
使用usermod
修改用户的组
useradd
没有-a
,如同usermod
加了-a
, 因为useradd
是创建用户,新创的用户肯定没有组,只能追加组,不能修改组, 所以注明-a
,--append
显得多余
改变 附加组 用-G
, 追加 附加组 用-aG
改变 主组 用-g
或--gid
sudo usermod -g 已经存在的组名或id 用户名
改变 附加组, 从原先的附加组移出, 用 -G
或--groups
, 不会影响主组
# 改变附加组, 从原先的附加组移出, 不从主组移出, 组必须已存在
sudo usermod -G 组1,组2,组3 用户名
或者
sudo usermod 用户名 -G 组1,组2,组3
追加 附加组, 用 -aG
或 -a -G
或 --append --groups
# 追加附加组
sudo usermod -aG 组1,组2,组3 用户名
或者
sudo usermod 用户名 -aG 组1,组2,组3
或者
sudo usermod -a -G 组1,组2,组3 用户名
或者
sudo usermod 用户名 -a -G 组1,组2,组3
或者
sudo usermod --append --groups 组1,组2,组3 用户名
或者
sudo usermod 用户名 --append --groups 组1,组2,组3
useradd
没有-a
,如同usermod
加了-a
, 因为useradd
是创建用户,新创的用户肯定没有组,只能追加组,不能修改组, 所以注明-a
,--append
显得多余
使用 gpasswd
添加组成员
添加单个组成员, 用-a
或--add
sudo gpasswd -a 成员用户名 组名
sudo gpasswd --add 成员用户名 组名
修改组的成员 -M
或--members
sudo gpasswd -M 用户1,用户2,用户3 组名
sudo gpasswd --members 用户1,用户2,用户3 组名
使用-M
或--members
时, 如果新成员中不包含原先的成员, 原先的成员就不再属于该组
usermod -aG 一组 张三
: 一组有了张三gpasswd -M 李四 一组
: 一组有了李四, 不再有张三gpasswd -M 张三,王五 一组
: 一组又有了张三, 还有王五, 但没有了李四
移出组的成员, 修改用户的附加组
移出组的方法1 : 组删除成员, 删除指定组的用户
sudo gpasswd -d 用户名 组名
移出组的方法2: 编辑修改 /etc/group
文件
sudo vi /etc/group
移出组的方法3: 用 usermod -G
不加 -a
时会先移除再添加的特性
usermod -G
既能添加组,也能移出组
# 假设用户原先有附加组1,附加组2,附加组3 , 想要移除附加组2
sudo usermod -G 附加组1,附加组3 用户名
useradd
,usermod
,gpasswd
组操作的一些对比
- useradd和usermod能设置用户的主组 , gpasswd不能
- gpasswd的
-a
是--add
, usermod的-a
是--append
, useradd没有 a 选项 - useradd和usermod 组在前,用户在后, gpasswd相反
- useradd和usermod 设置用户的组, gpasswd设置组的用户
加入移出wheel组的例子
加入wheel组的方法
- 用 useradd 创建用户并加入
# 用户的主组被设为wheel
sudo useradd -g wheel 用户名
或
# 用户的附加组添加wheel组
sudo useradd -G wheel 用户名
-g只能一个组,且设为主组 -G可以多个组,用逗号分隔
- 用 usermod
# 只加-G(--groups)不加-a(--append)会移出该用户原先的附加组, 不会移出主组
usermod -G wheel 用户名
或
# -aG 等同 -a(--append) -G(--groups) , 加上 -a 后 就不会移出原先的附加组了
sudo usermod -aG wheel 用户名
或
# -aG 等同 -a(--append) -G(--groups) , 加上 -a 后 就不会移出原先的附加组了
sudo useradd -a -G wheel 用户名
- 用 gpasswd
sudo gpasswd -a 用户名 wheel
或
sudo gpasswd -M 用户名 wheel
- 修改 /etc/group 文件
sudo vi /etc/group
在 wheel: x:10: 后添加用户名 , 以逗号分隔
移出wheel组的方法
- 方法1
sudo gpasswd -d 用户名 wheel
- 方法2 修改 /etc/group 文件
sudo vi /etc/group
在 wheel: x:10: 后去除用户名