Linux /etc/group文件解析(超详细)
/ect/group 文件是用户组配置文件,即用户组的所有信息都存放在此文件中。
此文件是记录组 ID(GID)和组名相对应的文件。前面讲过,etc/passwd 文件中每行用户信息的第四个字段记录的是用户的初始组 ID,那么,此 GID 的组名到底是什么呢?就要从 /etc/group 文件中查找。
/etc/group 文件的内容可以通过 Vim 看到:
[root@localhost ~]#vim /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
…省略部分输出…
lamp:x:502:
可以看到,此文件中每一行各代表一个用户组。在前面章节中,我们曾创建 lamp 用户,系统默认生成一个 lamp 用户组,在此可以看到,此用户组的 GID 为 502,目前它仅作为 lamp 用户的初始组。
各用户组中,还是以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:
组名:密码:GID:该用户组中的用户列表
接下来,分别介绍各个字段具体的含义。
组名
也就是是用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。
组密码
和 /etc/passwd 文件一样,这里的 "x" 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。
不过,用户设置密码是为了验证用户的身份,那用户组设置密码是用来做什么的呢?用户组密码主要是用来指定组管理员的,由于系统中的账号可能会非常多,root 用户可能没有时间进行用户的组调整,这时可以给用户组指定组管理员,如果有用户需要加入或退出某用户组,可以由该组的组管理员替代 root 进行管理。但是这项功能目前很少使用,我们也很少设置组密码。如果需要赋予某用户调整某个用户组的权限,则可以使用 sudo 命令代替。
组ID (GID)
就是群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆。
这里的组 GID 与 /etc/passwd 文件中第 4 个字段的 GID 相对应,实际上,/etc/passwd 文件中使用 GID 对应的群组名,就是通过此文件对应得到的。
组中的用户
此字段列出每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户。
举个例子,lamp 组的组信息为 "lamp:x:502:",可以看到,第四个字段没有写入 lamp 用户,因为 lamp 组是 lamp 用户的初始组。如果要查询这些用户的初始组,则需要先到 /etc/passwd 文件中查看 GID(第四个字段),然后到 /etc/group 文件中比对组名。
每个用户都可以加入多个附加组,但是只能属于一个初始组。所以我们在实际工作中,如果需要把用户加入其他组,则需要以附加组的形式添加。例如,我们想让 lamp 也加入 root 这个群组,那么只需要在第一行的最后一个字段加入 lamp,即 root:x:0:lamp 就可以了。
一般情况下,用户的初始组就是在建立用户的同时建立的和用户名相同的组。
到此,我们已经学习了/etc/passwd、/etc/shadow、/etc/group,它们之间的关系可以这样理解,即先在 /etc/group 文件中查询用户组的 GID 和组名;然后在 /etc/passwd 文件中查找该 GID 是哪个用户的初始组,同时提取这个用户的用户名和 UID;最后通过 UID 到 /etc/shadow 文件中提取和这个用户相匹配的密码。
Linux /etc/group文件解析(超详细)相关推荐
- 常用Linux命令及其作用(超详细,带演示)
常用Linux命令及其作用(超详细,带演示) 文章目录 常用Linux命令及其作用(超详细,带演示) 1. 提前了解 1.1 终端命令格式 1.2 --help 1.3 man command 查询使 ...
- 2022年全国职业院校技能大赛中职组网络安全竞赛——隐写术应用解析(超详细)
2022年全国职业院校技能大赛中职组网络安全竞赛--隐写术应用解析(超详细) B-8任务八:隐写术应用 *任务说明:仅能获取Server8的IP地址 环境需求私信博主 1.找出文件夹1中的文件,将文件 ...
- linux /etc/group文件详解
2019独角兽企业重金招聘Python工程师标准>>> Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理 ...
- Linux学习笔记 文件服务Vsftp详细介绍
Linux学习笔记 文件服务Vsftp详细介绍 知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据 ...
- 苹果手机mov文件如何复制到电脑_如何在手机上访问电脑上的文件(超详细步骤) iPhone版...
之前分享了如何在两台电脑上共享文件,如需访问可点击如下链接: Town-Tree:如何在两台电脑之间共享文件(超详细步骤)zhuanlan.zhihu.com 如何在安卓手机上访问电脑上的文件,可点 ...
- linux安装mysql8⼀步⼀步超详细教程
1.linux安装mysql8⼀步⼀步超详细教程 cd /usr/local/src 2.下载mysql8 wget https://dev.mysql.com/get/Downloads/MySQL ...
- Linux系统双网卡聚合超详细教程
Linux系统双网卡聚合超详细教程 将多个物理网卡聚合在一起,从而实现冗错和提高吞吐量 网络组不同于旧版中bonding技术,提供更好的性能和扩展性 网络组由内核驱动和teamd守护进程实现. 主要分 ...
- 区间DP解析超详细版!!街边老奶奶也喜欢看的好博客
区间DP解析超详细版!! 文章目录 区间DP解析超详细版!! 1. 概念入门 2. 线性石子归并 3. 环形石子归并 4. 奇怪的题题目目 5. 区间DP的优化 附录 在上章 背包 (<-点击传 ...
- Linux 命令 用法 大全(超详细)
文章目录 一.命令的基本格式 1. 命令的提示符 2. 命令的基本格式 二.基本命令 (一)目录操作命令 1.ls 命令 2.cd 命令 3.pwd 命令 4.mkdir 命令 5.rmdir 命令 ...
最新文章
- python 正则表达质 re.sub() 的使用
- 2017年中国自动驾驶最全产业研究报告 99页
- Spring(三)AOP面向切面编程
- php+mssql 分页,一个PHP+MSSQL分页的例子
- (七)boost库之单例类
- Git版本控制管理系统_企业实战上篇
- C语言指向结构体的指针的例子
- 关于使用runtimeStyle属性问题讨论
- concurrent包下线程池类小结
- Gdiplus的使用 gdi+
- json字符串转json对象
- Recurdyn与AMESim联合仿真出现无法加载DLL错误解决方法
- 二调建设用地地类代码_二调地类代码表[1]
- 一款基于TCP协议/Netty框架开发的一款基本简单的屏幕共享软件(局域网内)
- 微原创——好用的文章转换工具自媒体利器
- 城市矢量边界数据下载
- 计算机毕业设计之java+SSM酒店客房预定管理系统
- SVN版本库备份和恢复
- 5G商用牌照正式发放!万亿级市场大门开启
- LTE 怎么从信令里提取 IMSI