2022-08-09  2024-09-18    1044 字  3 分钟

概念和相关文件

在 Linux 用户系统中存在两类组。第一类是主要用户组(主组),第二类是附加用户组(附属组)。

  • 主组:也被称为primary group、first group或initial login group,用户的默认组,用户的gid所标识的组。
  • 附属组:也被称为Secondary group或supplementary group,用户的附加组。

存储文件

  • 用户帐户及相关信息都存储在/etc/passwd文件中,
  • 用户组信息存储在/etc/shadow/etc/group文件。

id命令

通过id命令查看用户的主组和附属组

1id root
2 # uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
3id gg
4 # uid=503(gg) gid=503(gg) groups=503(gg)
5id mm
6 # uid=502(mm) gid=500(jww) groups=500(jww)

gid标识主组,groups表示用户所属的全部组(主组和附属组)

用户必须有且只能有一个主组,可以有0个、1个或多个附属组

新增一个用户并添加到指定用户组

 1#检查用户组是否存在,如果组存在则会输出组信息,否则没有任何输出
 2grep <用户组名称> /etc/group
 3#如果用户组不存在则使用如下命令新建用户组:
 4groupadd <用户组名称>
 5 
 6#新建用户并将其加入指定用户组,作为其主用户组(每个用户有且只有一个主用户组)
 7useradd -g <用户组名称> <用户名称>
 8#或者 新建用户并将其加入指定附属用户组,附属用户组可以有多个,多个附属组名称用逗号分隔即可
 9useradd -G <用户组名称> <用户名称>
10 
11#设置用户密码
12passwd <用户名称>
13#查看用户属性,检查是否添加到正确的用户组
14id <用户名称>

常用添加用户命令(添加用户并添加到主组):useradd -g <用户组名称> <用户名称>

将已有用户添加到指定用户组

1#将已有用户添加到指定用户组,作为其附属用户组
2# -a 代表append,和 -G 一起使用,将用户添加到新用户组中而不必来开原有的其他用户组
3usermod -a -G <用户组名称> <用户名称>
4 
5#将已有用户的主用户组改为新的用户组
6usermod -g <新的用户组名称> <用户名称>

添加用户,并创建家目录、登录shell等信息

1# -m 自动建立用户家目录
2# -M 不自动创建家目录
3# -d <dir> 使用指定目录作为家目录
4# -g <gid> 指定用户所在的主组
5# -U 自动创建同名主组
6# -G <gid1>,<gid2> 指定用户所属的组
7# -s <shell> 指定用户登录的shell
8useradd -m -s /bin/bash <用户名称>

将一个用户从某个用户组删除

1#将用户从该用户的附属组中删除
2gpasswd -d <用户名称> <用户组名称>

删除用户

1#永久性删除用户账号
2userdel <用户名称>

除另有声明外本博客文章均采用 知识共享 (Creative Commons) 署名 4.0 国际许可协议 进行许可转载请注明原作者与文章出处