主组(基本组) 和 附加组 的概念
Linux用户可以有一个主组,和多个附加组
加入组
加入或改变主组
在用useradd或adduser时
添加用户,并创建和用户名相同的主组
# 添加用户,系统自动创建和用户名相同的主组, 并加入
sudo useradd 用户名
添加用户,并加入指定名称的主组
# 添加用户,并加入指定名称的主组, 组必须已存在,
sudo useradd -g 已经存在的组 用户名
useradd的 -g和-G可以同时使用, 创建用户的同时指定一个主组和多个附加组
sudo useradd -g 主组 -G 附加组1,附加组2,附加组3 用户名
在用usermod修改用户时
改变主组 -g
sudo usermod -g 已经存在的组 用户名
加入或改变附加组
在用useradd或adduser时
添加用户并指定附加组, 可以多个, 用逗号分隔, 组必须已存在
# 添加用户并指定附加组, 可以多个, 用逗号分隔, 组必须已存在
sudo useradd -G 组1,组2,组3 用户名
在用'usermod`时
改变附加组, 从原先的附加组移出, 不从主组移出 -G
# 改变附加组, 从原先的附加组移出, 不从主组移出, 组必须已存在
sudo usermod -G 组1,组2,组3 用户名
追加附加组, 原先的组保留 aG
# 改变附加组, 从原先的附加组移出, 不从主组移出, 组必须已存在
sudo usermod -aG 组1,组2,组3 用户名
或者
sudo usermod -a -G 组1,组2,组3 用户名
在用 gpasswd 时
添加1个成员到组
gpasswd -a 用户名 组名
添加多个成员到组
gpasswd -M 用户1,用户2,用户3 组名
移出组
移出组的方法1: sudo gpasswd -d 用户名 组名
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 -G,usermod -aG和gpasswd -M
useradd -G和usermod -aG是多个组附加给一个用户gpasswd -M是多个用户成员加入一个组
usermod能指定主组,不能移出组gpasswd能移出组,不能指定主组
以加入移出wheel组为例
加入wheel组的方法
- 用 useradd 创建用户并加入
# 用户的主组被设为wheel
useradd -g wheel 用户名
或
# 用户的附加组添加wheel组
useradd -G wheel 用户名
-g只能一个组,且设为主组 -G可以多个组,用逗号分隔
- 用 usermod
# 只加-G(--groups)不加-a(--append)会移出该用户原先的附加组, 不会移出主组
usermod -G wheel 用户名
或
# -aG 等同 -a(--append) -G(--groups) , 加上 -a 后 就不会移出原先的附加组了
usermod -aG wheel 用户名
或
# -aG 等同 -a(--append) -G(--groups) , 加上 -a 后 就不会移出原先的附加组了
useradd -a -G wheel 用户名
- 用 gpasswd
gpasswd -a 用户名 wheel
或
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: 后去除用户名