『学了就忘』Linux用户管理 — 52、用户组管理相关命令
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、用户组管理相关命令的更多相关文章
- 『学了就忘』Linux系统管理 — 86、查看系统资源相关命令
目录 1.vmstat命令 2.dmesg命令 3.free命令 4.查看CPU信息 5.查看本机登陆用户信息 (1)w命令 (2)who命令 6.uptime命令 7.查看系统与内核相关信息 1.v ...
- 『学了就忘』Linux用户管理 — 50、用户管理相关文件详细说明
目录 1.用户信息文件 2./etc/shadow影子文件 3./etc/group 组信息文件 4.组密码文件 5.用户的家目录 6.用户邮箱目录 7.用户模板目录 总结: 提示:严格的用户权限划分 ...
- 『学了就忘』Linux用户管理 — 51、用户管理相关命令
目录 1.添加用户(useradd命令) 2.设定密码(passwd命令) 3.用户信息修改(usermod命令) 4.删除用户(userdel命令) 5.切换用户身份(su命令) 1.添加用户(us ...
- 『学了就忘』Linux文件系统管理 — 61、使用parted命令进行分区
目录 1.parted命令介绍 2.parted交互模式 3.建立分区 (1)查看分区 (2)修改成GPT分区表 (3)建立分区 (4)建立文件系统(格式化) (5)调整分区大小 (6)删除分区 1. ...
- 『学了就忘』Linux文件系统管理 — 59、使用fdisk命令进行手工分区
目录 1.手工分区前提 (1)要有一块新的硬盘 (2)在虚拟机中添加一块新硬盘 2.手工分区 (1)查看Linux系统所有硬盘及分区 (2)手工分区:详细步骤 (3)保存手工分区 3.硬盘格式化 4. ...
- 『学了就忘』Linux系统管理 — 81、进程管理介绍
目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程( ...
- 『学了就忘』Linux系统管理 — 85、工作管理相关命令
目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...
- 『学了就忘』Linux基础命令 — 27、搜索操作相关命令
目录 1.whereis命令 2.which命令 3.locate命令 1.whereis命令 whereis是搜索系统命令的命令,也就是说,whereis命令不能搜索普通文件,而只能搜索系统命令. ...
- 『学了就忘』Linux基础命令 — 35、网络中与其他机器通信的命令
目录 1.write命令 2.wall命令 3.mail 命令 使用1:发送邮件 使用2:查看已经接收的邮件 使用3:发送文件内容 1.write命令 (1)write命令的基本信息 命令名称:wri ...
随机推荐
- 微软 SqlHelper代码、功能、用法介绍:高效的组件
数据访问组件SqlHelper数据访问组件是一组通用的访问数据库的代码,在所有项目中都可以用,一般不需要修改.本节使用的是Microsoft提供的数据访问助手,其封装很严密,且应用简单. 首先要先添加 ...
- 【实验向】问题:假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示:
问题: 假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示: unsigned char[16] = {0x3f, 0xa0, 0x00, 0x00, 0x ...
- python实现地理编码
python实现地理编码 去高德地图申请好key python代码 # -*- coding:utf_8 -*- # !/usr/bin/python37 """ @au ...
- JVM:内存模型
JVM:内存模型 说明:这是看了 bilibili 上 黑马程序员 的课程 JVM完整教程 后做的笔记 1. java 内存模型 很多人将[java 内存结构]与[java 内存模型]傻傻分不清,[j ...
- STM32必学的时钟系统
STM32的时钟系统 相较于51单片机,stm32的时钟系统可以说是非常复杂了,我们现在看下面的一张图: 上图说明了时钟的走向,是从左至右的从时钟源一步步的分配给外设时钟.需要注意的是,上图左侧一 ...
- 疯狂Java基础Day1
--每过一遍基础,都是一次提升! 太多遗忘了,慢慢补... 推一个Java学习教程--->b站搜:狂神说Java系列(排序完毕) 推荐原因:讲的不错,会涉及到底层,也会讲讲面试. 一.注释 主要 ...
- repo学习总结
转载:https://blog.csdn.net/salmon_zhang/article/details/79180075 1. repo简介 repo是Google开发的用于管理Android版本 ...
- hdu 1158 Employment Planning(DP)
题意: 有一个工程需要N个月才能完成.(n<=12) 给出雇佣一个工人的费用.每个工人每个月的工资.解雇一个工人的费用. 然后给出N个月所需的最少工人人数. 问完成这个项目最少需要花多少钱. 思 ...
- 如何选择普通索引和唯一索引《死磕MySQL系列 五》
系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强 ...
- 如何抓取直播源及视频URL地址-疯狂URL(教程)
直播源介绍 首先,我们来快速了解一下什么是直播源,所谓的直播源,其实就说推流地址,推流地址可能你也不知道是什么,那么我再简单说一下,推流地址就是,当某个直播开播的时候,需要将自己的直播状态实时的展示给 ...