用户账号-用户标识符:UID与GID

虽然我们登录Linux主机的时候,输入的是我们的账号,但是其实Linux主机并不会直接认识你的“账号名称”的,它仅认识ID。ID与账号的对应关系在/etc/passwd当中。

每个登录的用户至少都会取得两个ID,一个是用户ID(UserID,简称UID),一个是用户组ID(Group ID,简称GID)。

文件如何判别它的所有者与用户组呢?其实就是利用UID与GID。每一个文件都会有所谓的所有者ID与用户组ID,当我们有要显示文件属性的需求时,系统会根据/etc/passwd与/etc/group的内容,找到UID/GID对应的账号与组名再显示出来。


1. 先查看一下,系统里面有没有一个名为yhk的用户


用户的字段正是yhk本身。

2. 修改一下,将yhk的1000UID该为2000




怎么变成1000了?因为文件只会记录数字而已。因为我们乱改,所以导致1000找不到对应的账号,因此显示数字!

3. 将刚才的UID改回来。


你输入账号密码后,系统怎么处理?

1. 先找寻/etc/passwd 里面是否有你输入的账号,如果没有则跳出,如果有的话则将该账号对应的UID与GID(在/etc/group 中)读出来,另外,该账号的主文件夹与shell 设置也一并读出。

2. 再来则是核对密码表。Linux会进入/etc/shadow 里面找出对应的账号与UID,然后核对一下你刚才输入的密码与里面的密码是否相符。

3. 如果一切ok的话,就进入shell 控管的阶段了。

跟用户账号有关的有两个非常重要的文件,一个是管理用户UID/GID重要参数的/etc/passwd ,一个则是专门管理密码相关数据的/etc/shadow

/etc/passwd 文件结构

每一行都代表一个账号,有几行就代表有几个账号在你的系统中。不过需要特别留意的是,里面有很多账号本来就是系统正常运行所必须要的,我们可以简称它为系统账号,例如bin, daemon, adm, nobody 等,这些账号请不要随意删掉。


每一行使用“:”分隔开,共有七个字段,分别是:

1. 账号名称

就是账号,用来对应UID 的。例如root 的UID对应就是0(第三字段)

2. 密码

早期UNIX系统的密码就是放在这字段上。但是因为这个文件的特性是所有的程序都能够读取,这样一来很容易造成密码数据被窃取,因此后来就将这个字段的密码数据改放到/etc/shadow 中了,所以这里你会看到一个“x”.

3. UID

这个就是用户标识符。通常Linux对于UID有几个限制。0(系统管理员),1~499(系统账号),500~65535(可登陆账号)

4. GID

这个与/etc/group 有关。其实/etc/group 与 /etc/passwd 差不多,只是它是用来规定组名与GID的对应而已。

5. 用户信息说明列

这个字段基本上并没有什么重要用途,只是用来解释这个账号的意义而已。

6. 主文件夹

这是用户的主文件夹。

7. shell

当用户登录系统后就会取得一个Shell来与系统的内核通信以进行用户的操作任务。那为何默认shell会使用bash呢?就是这个字段指定的。

/etc/shadow 文件结构

我们知道很多程序的运行都与权限有关,而权限与UID/GID 有关。因此各程序当然需要读取/etc/passwd 来了解不同账号的权限。因此/etc/passwd 的权限需要设置为-rw-r--r--这样的情况。后来发展出将密码移动到/etc/shadow 这个文件分隔开来的技术,而且还加入很多的密码限制参数在/etc/shaow 里面。


共有9个字段:

1. 账号名称

由于密码也需要与账号对应。因此,这个文件的第一列就是账号,必须要与/etc/passwd 相同才行。

2. 密码

这个字段内的数据才是真正的密码,而且是经过编码的密码(加密)。这个文件的默认权限是“-rw-------”或者是“-r--------”,即只有root才可以读写。你得随时注意,不要不小心改动了这个文件的权限。

/etc/group 文件结构

这个文件就是记录GID与组名的对应。


这个文件每一行代表一个用户组。共分4列

1. 用户组名称

2. 用户组密码

通常不需要设置,这个设置通常是给“用户组管理员”使用的,目前很少有这个机会设置用户组管理员。

3. GID

就是用户组ID。我们/etc/passwd 第四个字段使用的GID对应的用户组名就是由这里对应出来的。

4. 此用户组支持的账号名称

我们知道一个账号可以加入多个用户组,那某个账号想要加入此用户组时,将该账号填入这个字段即可。举例来说,如果我想让 dmtsai 也加入 root 这个用户组,那么在第一行的最后面加上“,dmtsai”,注意不要有空格,使其成为“root:x:0:root,dmstai”就可以了。

有效用户组(effective group)与初始用户组(initial group)

每个用户在它的/etc/passwd 里面的第四列GID就是所谓的“初始用户组”。也就是说,当用户登录系统,立刻就拥有这个用户组的相关权限。

新文件的组要检查一下当时的有效用户组了。












本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620653.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Android 安全机制(1)uid 、 gid 与 pid

1、概述 Android 安全机制来源于Linux,并且以Linux权限管理为基础,要了解Android的安全机制,需要从linux中的安全机制了解开始,而用户的权限管理又是linux安全机制的最基本的一个组成. Android的创新之处是在linux用户权限管理的…

UID、EUID、GID和EGID

UID、EUID、GID和EGID Linux中id真是太多了进程有pid,然后用户还有UID这种,真是有点绕。 在Linux当中一个进程(程序)拥有四个ID:真实用户UID、有效用户EUID、真实组GID和有效组EGID。 这里以真实用户UID和有效用户EUID为例&…

用户和用户组-UID和GID

用户和用户组-UID和GID Linux用户和用户组用户UID用户组GID/etc/passwd 文件结构/etc/shadow 文件结构 Linux用户和用户组 Linux采用一个32位的整数记录和区分不同的用户。这个区分不同用户的数字被称为User ID,简称UID。Linux系统中用户分为3类,即普通…

linux uid gid 作用,Linux uid和gid

Linux uid和gid教程 我们在登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户的名称与 ID 的对应关系都存储在 /etc/passwd 文件中。…

GiD 自定义 简介

目录 Blog Links一、前言二、GiD的程序架构三、问题类型系统四、主配置文件/.spd文件4.1 单位制4.2 截面属性4.3 局部轴 五、Tcl文件5.1 GiD程序调用GiD-Tcl5.2 执行程序的命名空间 六、参考文献 Blog Links DalNur | 博客总目录 GiD 实用教程 GiD 前处理 实例 GiD 自定义 简…

GiD 实用教程

目录 Blog Links一、前言二、用户界面2.1 界面组成2.2 快捷键2.3 模式切换2.4 图层功能2.5 删除功能2.6 视图切换2.7 渲染视图 三、帮助与实例3.1 帮助文档3.2 官方实例 四、GiD Basics五、几何模型5.1 点的定义5.2 线的创建5.3 面的创建5.4 体的创建 六、网格划分6.1 布设种子…

python 双向链表

双向链表基本介绍 双向链表增删改查操作思路分析 双向链表增删改查操作代码实现 """ 双向链表的增删改查 """# 英雄类 class HeroNode:next None # 指向下一个节点,默认为空pre None # 指向前一个节点,默认为空def …

小马哥的CSS驿站

目录 第一章 CSS概述 1.1语法 1.2注释 1.3CSS的创建 第二章 CSS选择器 1.id选择器 2.class选择器 3.标签选择器 4.子代选择器 5.后代选择器 6.相邻兄弟选择器 7.后续兄弟选择器 8.交集选择器 9.并集选择器 第三章 CSS样式 1.文本与文字样式 (1&…

35 岁财务自由的小马哥,我想跟他学学!

如果说 Java 工程师,有什么一定要“死磕”拿下的东西,那一定是 Spring 无疑了。 众所周知,Spring 无论在 Java 生态系统,还是在就业市场,是绝对的王者。Spring AOP 作为 Spring 框架的核心内容之一,其重要性…

计算机网络(速率、宽带、吞吐量、时延、发送时延)

速率: 最重要的一个性能指标。 指的是数据的传送速率,也称为数据率 (data rate) 或比特率 (bit rate)。 单位:bit/s,或 kbit/s、Mbit/s、 Gbit/s 等。 例如 4 1010 bit/s 的数据率就记为 40 Gbit/s。 速率往往是指额定速率或…

什么盒模型

一、盒模型 1.什么是盒模型 在我们HTML页面中,每一个元素都可以被看作一个盒子,而这个盒子由:内容区(content)、填充区(padding)、边框区(border)、外边界区&#xff0…

1.1 编辑楼层标高

在任意视图内批量编辑楼层。点击 按钮,弹出楼层管理器界面,可以对模型中已有的楼层高度进行修改、批量修改楼层名称。在创建楼层时,可以设定起始楼层序号,后续楼层将自动排序,当前文件中的新建楼层在“确定”完成前允许自由删除操…

2.3 轴生墙

按照已创建的弧形/ 直线轴生成墙。点击 按钮,弹出轴线生墙对话框,如图所示:在基本墙中选择需要添加的墙类型,在顶高和底高中选择楼层,并可以勾选是否按楼层切分墙。可在墙上定位线中选择墙的中心或者外边缘等为定位线…

3.5 连接管线

通过Revit管线建模功能,或是通过翻模软件创建的管线往往是不连接的,如果要把它们连接起来很费力,同时也不容易指定连接的角度。模盒提供的连接管线”功能可以很好地连接各种管线,并根据所选管线的空间位置,智能提示可以…

1.7 删轴线

点击 按钮,选择任意需要删除的轴线即可完成删除,与已删除轴线同组的后续众轴线编号会自动向前进位,以保持轴网编号的连续性。 先图AGI模盒下载地址: 先图官网:http://www.agicloud.com 安装下载(腾讯微云&a…

Retina时代的前端视觉优化

随着New iPad的发布,平板也将逐渐进入Retina时代,在高分辨率设备里图片的显示效果通常不尽人意,为了达到最佳的显示效果就需要对图片进行优化,这里介绍一些优化方法: 一、用CSS替代图片 这一点在任何时候都适用&#x…

3.4 分割管线

Revit中创建的管线为与实际施工结合,往往需要按指定的安装长度进行打断。按照传统手段进行打断,效率低下。可以通过模盒提供的批量分割打断管线功能,对机电的管线进行一次性打断。 可以打断的机电管线包括:风管、水管和桥架。 点击…

盒模型。。

css盒模型的概述: css盒模型(Box Model)规定了元素处理元素内容、内边距、边框、外边距、的方式 这个是盒模型的模型图 盒模型各部分说明: content:是盒子的内容 显示文本图像 padding:是盒子的内边距 …

2.4 标准柱

点击 按钮,弹出标准柱对话框,如图所示:在已创建的轴网角度处创建柱。可选择柱类型, 可同时创建跨多层柱子,并可选是否按照楼层切分柱。支持各种偏移,自定义偏心距离以及旋转角度的设置。可以点击最下方三个…

2.19 一键扣减

Revit建模后,各构件会存在互相重叠的情况,像结构柱与梁的重叠。由于实际施工不会出现重合的情况,因此模型的真实程序会降低,同时在后续的算量过程中会重复计算重合部分,计算结果不能精确。为此,模盒提供了“…