1、添加用户组

添加用户组的命令是groupadd

命令格式如下:

[root@localhost ~]# groupadd [选项] 组名

选项:

  • -g:GID。指定组ID。(一般不会用)

添加用户组的命令比较简单,举个例子:

# 添加group1组
[root@localhost ~]# groupadd group1 # 查看用户组是否创建
[root@localhost ~]# grep "groupl" /etc/group
group1:x:502:

2、删除用户组

groupdel命令用于删除用户组。

命令格式如下:

[root@localhost ~]# groupdel 组名

例子:

# 删除group1组
[root@localhost ~]# groupdel group1

不过大家要注意,要删除的组不能是其他用户的初始组,也就是说这个组中没有初始用户才可以删除。如果组中都是附加用户,则删除组时不受影响。

3、把用户添加进组或从组中删除

gpasswd命令是用来设定组密码并指定组管理员的,不过我们在前面已经说了,组密码和组管理员功能很少使用,而且完全可以被sudo命令取代,所以gpasswd命令现在主要用于把用户添加进组或从组中删除。

命令格式如下:

[root@localhost ~]# gpasswd [选项] 组名

选项:

  • -a 用户名:把用户加入组
  • -d 用户名:把用户从组中删除

举个例子:

# 添加组grouptest
[root@localhost ~]# groupadd grouptest # 把用户user1加入grouptest组
[root@localhost ~]# gpasswd -a user1 grouptest
Adding user user1 to group grouptest # 查看一下,user1用户已经作为附加用户加入grouptest组
[root@localhost ~]# grep "user1" /etc/group
user1:x:501:
grouptest:x:505:user1 # 把用户user1从组中删除
[root@localhost ~]# gpasswd -d user1
grouptest Removing user userl from group grouptest # 组中没有user1用户了
[root@localhost ~]# grep "grouptest" /etc/group
grouptest:x:505:

说明:

之前我们说过,使用usermod命令可以把用户加入某个组,那usermod命令和gpasswd命令有什么区别?

  • usermod命令的操作对象是用户,命令是usermod -G grouptest user1,把用户名作为参数放在最后(也就是grouptest是组,user1是用户);而gpasswd命令的操作对象是组,命令是gpasswd-a user1 grouptest,把组名作为参数放在最后(user1是用户,grouptest是组,和usermod命令位置相反)。
  • usermod命令和gpasswd命令,理论上用哪一个都可以,推荐使用gpasswd命令,原因gpasswd命令只添加附加组,而usermod命令根据不同的选项可以添加初始组和附加组。
  • gpasswd命令不但能把用户添加进附加组中,而且gpasswd命令还有从组中删除用户的功能。gpasswd命令更为方便。

提示:用vim编辑器,手动编辑也是可以的,同样效果。只是手工写的方式不适合做脚本。

注意:在删除组的时候,如果组中有没有初始组的用户(也就是把当前组作为初始组的用户),需要把该用户删除掉,才能把该用户组删除。

4、有效组(了解)

我们说过,每个用户可以有一个初始组(用户是这个组的初始用户),也可以属于多个附加组。既然用户可以属于这么多用户组,那么用户在创建文件后,默认生效的组身份是哪个呢?

当然是初始用户组的组身份生效了,因为初始组是用户一旦登录就直接获得的组身份。也就是说,用户在创建文件后,文件的属组是用户的初始组,因此用户的有效组默认是初始组。

既然用户属于多个用户组,那么能不能改变用户的有效组呢?

使用命令newgrp就可以切换用户的有效组。

命令格式如下:

[root@localhost ~]# newgrp 组名

举个例子:

  • 我们已经有了普通用户user1,默认会建立user1用户组,user1组是user1用户的初始组。我们再把user1用户加入group1组,那么group1组就是user1用户的附加组。
  • user1用户创建文件test1时,test1文件的属组是user1组,因为user1组是user1用户的有效组。通过newgrp命令就可以把user1用户的有效组变成group1组。
  • user1用户创建文件test2时,就会发现test2文件的属组就是group1组。使用newgrp命令可以在多个组身份之间切换。

『学了就忘』Linux用户管理 — 52、用户组管理相关命令的更多相关文章

  1. 『学了就忘』Linux系统管理 — 86、查看系统资源相关命令

    目录 1.vmstat命令 2.dmesg命令 3.free命令 4.查看CPU信息 5.查看本机登陆用户信息 (1)w命令 (2)who命令 6.uptime命令 7.查看系统与内核相关信息 1.v ...

  2. 『学了就忘』Linux用户管理 — 50、用户管理相关文件详细说明

    目录 1.用户信息文件 2./etc/shadow影子文件 3./etc/group 组信息文件 4.组密码文件 5.用户的家目录 6.用户邮箱目录 7.用户模板目录 总结: 提示:严格的用户权限划分 ...

  3. 『学了就忘』Linux用户管理 — 51、用户管理相关命令

    目录 1.添加用户(useradd命令) 2.设定密码(passwd命令) 3.用户信息修改(usermod命令) 4.删除用户(userdel命令) 5.切换用户身份(su命令) 1.添加用户(us ...

  4. 『学了就忘』Linux文件系统管理 — 61、使用parted命令进行分区

    目录 1.parted命令介绍 2.parted交互模式 3.建立分区 (1)查看分区 (2)修改成GPT分区表 (3)建立分区 (4)建立文件系统(格式化) (5)调整分区大小 (6)删除分区 1. ...

  5. 『学了就忘』Linux文件系统管理 — 59、使用fdisk命令进行手工分区

    目录 1.手工分区前提 (1)要有一块新的硬盘 (2)在虚拟机中添加一块新硬盘 2.手工分区 (1)查看Linux系统所有硬盘及分区 (2)手工分区:详细步骤 (3)保存手工分区 3.硬盘格式化 4. ...

  6. 『学了就忘』Linux系统管理 — 81、进程管理介绍

    目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程( ...

  7. 『学了就忘』Linux系统管理 — 85、工作管理相关命令

    目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...

  8. 『学了就忘』Linux基础命令 — 27、搜索操作相关命令

    目录 1.whereis命令 2.which命令 3.locate命令 1.whereis命令 whereis是搜索系统命令的命令,也就是说,whereis命令不能搜索普通文件,而只能搜索系统命令. ...

  9. 『学了就忘』Linux基础命令 — 35、网络中与其他机器通信的命令

    目录 1.write命令 2.wall命令 3.mail 命令 使用1:发送邮件 使用2:查看已经接收的邮件 使用3:发送文件内容 1.write命令 (1)write命令的基本信息 命令名称:wri ...

随机推荐

  1. Hibernate的介绍及入门小案例

    1.Hibernate的诞生 在以前使用传统的JDBC开发应用系统时,如果是小型应用系统,并不觉得有什么麻烦,但是对于大型应用系统的开发,使用JDBC就会显得力不从心,例如对几十,几百张包含几十个字段 ...

  2. Android QMUI实战:实现APP换肤功能,并自动适配手机深色模式

    Android换肤功能已不是什么新鲜事了,市面上有很多第三方的换肤库和实现方案. 之所以选择腾讯的QMUI库来演示APP的换肤功能,主要原因: 1.换肤功能的实现过程较简单.容易理解: 2.能轻松适配 ...

  3. 如何在前端通过JavaScript创建修改CAD图形

    背景 在之前的博文CAD图DWG解析WebGIS可视化技术分析总结.CAD_DWG图Web可视化一站式解决方案-唯杰地图-vjmap中讲解了如何把CAD的DWG格式的图纸Web可视化的方案,那在Web ...

  4. print spooler LPF 打印机漏洞

    打印机漏洞 该漏洞可以通过创建打印机驱动和端口,实现任意文件写入,用于提权或者写入后门. 打印机调用流程:client通过RPC调用server的spoolsv.exe,spoolsv.exe是sys ...

  5. python的函数参数传递方式

    python的一切数据类型都是对象.但是python的对象分为不可变对象和可变对象.python的变量是引用,对python变量的赋值是引用去绑定该对象. 可变对象的数据发生改变,例如列表和字典,引用 ...

  6. 浅尝装饰器--property装饰器

    [写在前面] 本帖归属于装饰器单元的学习,可以点击关键词'装饰器'查看其他博文讲解 [正文部分] property属性:将类方法用类属性的形式进行调用 class Good: def __init__ ...

  7. noj -> 跳马

    00 题目 描述: 在国际象棋中,马的走法与中车象棋类似,即俗话说的"马走日",下图所示即国际象棋中马(K)在一步能到达的格子(其中黑色的格子是能到达的位置). 现有一200*20 ...

  8. MySQL:基础语法-1

    MySQL:基础语法-1 记录一下 MySQL 基础的一些语法,便于查询,该部分内容主要是参考:bilibili 上 黑马程序员 的课程而做的笔记,由于时间有点久了,课程地址忘记了 关于数据库的安装操 ...

  9. Noip模拟42 2021.8.17

    T1 卷 一看跟没有上司的舞会一样,直接敲了然后试个自己造的样例对了就跑了... 然而把它想简单了,乘积取模,还能比大小吗????? 显然不能 所以直接让对数的加和跟着$dp$直接一起跑,比大小的都用 ...

  10. 关于把RTL工程代码封装成IP时对define宏定义参数的处理

    在把RTL工程封装成IP的时候,如果工程中的代码中含有global include中定义的参数,则vivado不支持该参数文件的封装.出现IP_FLOW 19-4646的错误代码,解决方法: 1.在用 ...