当前位置: 首页 > news >正文

/etc/shadow字段详解

1)/etc/shadow 概说;

/etc/shadow文件是/etc/passwd 的影子文件,这个文件并不由/etc/passwd 而产生的,这两个文件是应该是对应互补的;shadow内容包括用户及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限如下:
-r-------- 1 root root 1.5K 10月 16 09:49 /etc/shadow
/etc/shadow 的权限不能随便改为其它用户可读,这样做是危险的。如果您发现这个文件的权限变成了其它用户组或用户可读了,要进行检查,以防系统安全问题的发生;
如果我们以普通用户查看这个文件时,应该什么也查看不到,提示是权限不够:
[beinan@localhost ~]$ more /etc/shadow
/etc/shadow: 权限不够

2)/etc/shadow 的内容分析;
/etc/shadow 文件的内容包括9个段位,每个段位之间用:号分割;我们以如下的例子说明;
beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:
第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;
第九字段:保留字段,目前为空,以备将来Linux发展之用;
如果更为详细的,请用 man shadow来查看帮助,您会得到更为详尽的资料;

再根据实例分析:

beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:
第一字段:用户名(也被称之为登录名),在例子中有峡谷两条记录,也表示有两个用户beinan和linuxsir
第二字段:被加密的密码,如果有的用户在此字段中是x,表示这个用户不能登录系统,也可以看作是虚拟用户,不过虚拟用户和真实用户都是相对的,系统管理员随时可以对任何用户操作;
第三字段:表示上次更改口令的天数(距1970年01月01日),上面的例子能说明beinan和linuxsir这两个用户,是在同一天更改了用户密码,当然是通过passwd 命令来更改的,更改密码的时间距1970年01月01日的天数为13072;
第四字段:禁用两次口令修改之间最小天数的功能,设置为0
第五字段:两次修改口令间隔最多的天数,在例子中都是99999天;这个值如果在添加用户时没有指定的话,是通过/etc/login.defs来获取默认值,PASS_MAX_DAYS 99999;您可以查看/etc/login.defs来查看,具体的值;
第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;在例子中的值是7 ,表示在用户口令将过期的前7天警告用户更改期口令;
第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;在例子中,此字段两个用户的都是空的,表示禁用这个功能;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;在例子中,我们看到beinan这个用户在此字段是空的,表示此用户永久可用;而linuxsir这个用户表示在距1970年01月01日后13108天后过期,算起来也就是2005年11月21号过期;哈哈,如果有兴趣的的弟兄,自己来算算,大体还是差不多的;);

转载于:https://www.cnblogs.com/wickedboy237/p/3152902.html

相关文章:

  • 8款优秀的云端集成开发环境
  • linq直接执行sql语句
  • 用HAproxy+keepalived+mysql Replication 构建基于企业级负载均衡
  • SQL Server 2014新特性探秘(2)-SSD Buffer Pool Extension
  • 抢先体验Windows Server 2012 R2!
  • 【译】用jQuery 处理XML-- DOM(文本对象模型)简介
  • 软件设计师.NET认证考试测试卷(试题及答案)
  • Win2008 建域时提示administrator密码不符合要求
  • sql2000安全设置,堵截cmd.exe和ftp.exe******
  • 你自认为理解了JavaScript?
  • 【转】Deep Learning(深度学习)学习笔记整理系列之(二)
  • 引用与指针的区别
  • 劣质代码评析——《写给大家看的C语言书(第2版)》附录B之21点程序(三)
  • Android 百度地图定位(手动+自动)
  • Swing的Look And Feel机制研究
  • #Java异常处理
  • Asm.js的简单介绍
  • golang 发送GET和POST示例
  • Idea+maven+scala构建包并在spark on yarn 运行
  • leetcode46 Permutation 排列组合
  • Logstash 参考指南(目录)
  • Spring Cloud中负载均衡器概览
  • 对象引论
  • 后端_ThinkPHP5
  • 力扣(LeetCode)357
  • 想写好前端,先练好内功
  • 在Mac OS X上安装 Ruby运行环境
  • kubernetes资源对象--ingress
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ###项目技术发展史
  • #laravel 通过手动安装依赖PHPExcel#
  • (14)Hive调优——合并小文件
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C++20) consteval立即函数
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (ZT)一个美国文科博士的YardLife
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)大型网站架构演变和知识体系
  • (转)负载均衡,回话保持,cookie
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .Net IOC框架入门之一 Unity
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .net中我喜欢的两种验证码
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决