Linux下 /etc/shadow内容详解

news2024/10/5 10:28:04

/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。

前面介绍了 /etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。

/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。

注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击。

介绍此文件之前,先打开看看,执行如下命令 cat /etc/shadow,显示如下所示:

 文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下:

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

下面详细介绍这9个字段:

用户名


同 /etc/passwd 文件的用户名有相同的含义。

加密密码


这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法,原来采用的是 MD5 或 DES 加密算法。SHA512 散列加密算法的加密等级更高,也更加安全。

注意,这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 "!"、"*" 或 "x" 使密码暂时失效。

所有伪用户的密码都是 "!!" 或 "*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 "!!",代表这个用户没有密码,不能登录。

最后一次修改时间


此字段表示最后一次修改密码的时间,可是,为什么 root 用户显示的是 17213 呢?

这是因为,Linux 计算日期的时间是以  1970 年 1 月 1 日作为 1 不断累加得到的时间,到 1971 年 1 月 1 日,则为 366 天。这里显示 17213 天,也就是说,此 root 账号在 1970 年 1 月 1 日之后的第 17213 天修改的 root 用户密码。

那么,到底 17213  代表的是哪一天呢?可以使用如下命令进行换算:

可以看到,通过以上命令,即可将其换算为我们习惯的系统日期。

最小修改时间间隔


最小修改间隔时间,也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。

此字段是为了针对某些人频繁更改账户密码而设计的。

密码有效期


经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。
该字段的默认值为 99999,也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期。管理服务器时,通过这个字段强制用户定期修改密码。

密码需要变更前的警告天数


与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码!"。

该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 "修改密码" 的警告信息。

密码过期后的宽限天数


也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。

比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。

账号失效时间

同第 3 个字段一样,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!

该字段通常被使用在具有收费服务的系统中。

保留


这个字段目前没有使用,等待新功能的加入。

忘记密码怎么办


经常有读者会忘记自己的账户密码,该怎么处理呢?

对于普通账户的密码遗失,可以通过 root 账户解决,它会重新给你配置好指定账户的密码,而不需知道你原有的密码(利用 root 的身份使用 passwd 命令即可)。

如果 root 账号的密码遗失,则需要重新启动进入单用户模式,系统会提供 root 权限的 bash 接口,此时可以用 passwd 命令修改账户密码;也可以通过挂载根目录,修改 /etc/shadow,将账户的 root 密码清空的方法,此方式可使用 root 无法密码即可登陆,建议登陆后使用 passwd 命令配置 root 密码。
 

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

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

相关文章

以赛促教,以赛促研 ——计算机科学系举办“火焰杯”软件测试开发选拔赛颁奖仪式

颁奖仪式 2023年3月9日,第三届“火焰杯”软件测试开发选拔赛颁奖仪式在南海楼124会议室举行,计算机科学系系主任龙锦益教授、指导老师孙玉霞副教授、测吧科技有限公司王雪冬总监及获奖同学参加了颁奖仪式。 会议伊始,龙锦益教授对王雪冬总监…

安防视频监控平台EasyCVR查询告警后,无法自动清除记录该如何优化?

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支…

中国芯片制造厂商无惧封禁,订单一路飙升 | 百能云芯

随着美国对中国半导体行业实施更严格的限制措施,中国的芯片制造厂商成为了不可忽视的受益者。根据外媒报道,中国顶尖的芯片代工厂为了加速自主科技发展,已经开始更多地依赖国内制造的设备,这导致了中国芯片制造厂商近几个月来接到…

前端KOA搭建服务器——part1

目录 koa简介前端项目搭建koa环境第一步:新建项目第二步:环境初始化,安装依赖初始化项目,生成package.json文件安装koa依赖安装koa-router 路由管理依赖安装dotenv 环境变量依赖安装nodemon 热启动依赖 第三步:代码调用…

LeetCode讲解篇之面试题 10.11. 峰与谷

文章目录 题目描述题解思路题解代码 题目描述 题解思路 倒序遍历数组 若当前下标为偶数,则为峰,若左值大于当前值,则交换 若当前下标为奇数,则为谷,若左值小于当前值,则交换 题解代码 func wiggleSort…

ATA-2161高压放大器在压电薄膜传感器心脏监测研究中的应用

近年来,随着医疗技术的不断进步和人们对健康关注的增加,心脏疾病的早期监测与预防成为了研究的热点。压电薄膜传感器作为一种重要的生物传感器,在心脏监测领域发挥着重要的作用。而高压放大器作为压电薄膜传感器的关键驱动设备,对…

组合大招!XPS、BET联合开课,零基础也能让你快速刷经验升级-科学指南针

开课啦!科学指南针精品公开课——XPS、BET联合开课啦! 下面就由小编带领大家了解一下 8月30日、9月1日那两天可以学到什么吧~ 一:XPS课程 Vol.1 课程介绍 X射线光电子能谱仪 (X-ray Photoelectron Spectroscopy 简称XPS) ,又称…

Java现在还好不好找工作?行情怎么样?

37了,11年多的Java经验,其他什么mysql,linux,Vue等等都会,现在失业在家已经1年多,不指望入职摸鱼了,寻思着转行中。祝你好运 这是某问答社区,有个大四学生提问,好迷茫啊马…

ATA-L50水声功率放大器在OFDM水声通信系统中的应用

水声功率放大器是一种专门用于水下通信的设备,其在OFDM(正交频分复用)水声通信系统中起着重要的作用。OFDM技术是一种高效且抗干扰能力强的调制解调技术,通过将信号分为多个子载波来传输数据,有效地提高了数据传输速率…

Linux命令行安装图形化界面

Linux命令行安装图形化界面 安装CentOS默认安装没有配置图形化界面,如何在命令行进行安装图形化界面? 首先要以root用户登录,输入用户名和密码。 切换root用户命令: su root ​ 查看ip地址和网卡编号。 ip addr show 知道网卡编号…

微信小程序之后台交互-个人中心

目录 一.小程序登录微信登录接口演示 导入项目 登录信息 二.小程序授权登录理论与登录代码演示 图解 ​编辑 后端代码 前端代码 前端代码如下所示 代码案例演示 个人中心 后端代码如下所示 测试结果如下 一.小程序登录微信登录接口演示 导入项目 选择此项目导入…

对中纠偏系统比例伺服阀放大器

对中纠偏系统是一种广泛应用于生产线上的技术设备,主要用于调整材料的运动轨迹,使其在生产过程中能够准确对中。纠偏系统可以显著提高生产效率和产品质量,广泛应用在钢铁、瓦楞纸、纺织、印刷、标签、贴标、造纸、塑料薄膜等多个行业。 纠偏…

AB试验(六)A/B实验常见知识点的Python计算

AB试验(六)A/B实验常见知识点的Python计算 前面理论知识上提到了很多的知识点需要计算,作为一个实用主义的博主,怎么可以忍受空谈呢?所以本期就给大家分享如何利用Python对这些知识点进行计算。 均值类指标 import …

损失函数中的均方误差以及平方误差

通俗聊聊损失函数中的均方误差以及平方误差 机器学习中的所有算法都依赖于最小化或最大化某一个函数,我们称之为“目标函数”。最小化的这组函数被称为“损失函数”。损失函数是衡量预测模型预测期望结果表现的指标。寻找函数最小值的最常用方法是“梯度下降”。把损失函数想…

第二章Maven的使用

文章目录 Maven核心概念坐标Maven实战创建Java项目实战命令行创建一个Maven版的初始化Java项目实战Maven中编写代码实战执行 Maven 的构建命令 Maven核心概念:约定的目录结构各个目录的作用约定目录结构的意义约定大于配置 Maven实战创建 Maven 版的 Web 工程实战命…

前后端交互—跨域与HTTP

跨域 代码下载 同源策略 同源策略(英文全称 Same origin policy)是浏览器提供的一个安全功能。 MDN 官方给定的概念:同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这 是一个用于隔离潜在恶意文件的重要安全机制。 通俗的理解:浏览器规定&a…

linux性能分析(六)CPU性能篇(一)基础

一 CPU篇 遗留: 负载与cpu关系、负载与线程的关系? ① CPU 相关概念 1、physical 物理CPU个数 --> 一般一个实体 2、cpu 核数 3、逻辑CPU个数 逻辑核 4、超线程 super thread 技术 5、各种cpu的计算方式物理 physical CPU的个数: physical id逻…

云原生微服务实战 Spring Cloud Alibaba 之 Nacos

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

仿写知乎日报第一周

效果图 主要的逻辑 Manager封装网络请求 首先,对于获取网络请求,我是将这些方法封装成了一个类Manager,后续在获取以往的内容时又封装了一个beforeManager类用于网络请求。这里不多赘述,Manager封装网络请求的知识参考我的以往博…

Linux中常用的性能分析工具

1 明确目标 进行性能分析时,需要明确优化的目标,例如,是优化整体的性能,还是某个功能的性能。 明确优化目标后就需要能够知道当前的性能瓶颈,性能消耗在什么地方,以及如何去衡量,这样也能够在…