/etc/shadow保存用户的啥信息?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了/etc/shadow保存用户的啥信息?相关的知识,希望对你有一定的参考价值。

/etc/shadow保存用户的什么信息?

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

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

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

扩展资料

影子文件的内容:

1、用户名。

2、加密密码(*或者!!表示该用户没有密码,或者在某个用户前面加上!让其密码失效,让该用户无法登录)。

3、最后修改时间(以时间戳的形式,以1970年1月1日为起始日期,时间单位为/天)。

4、修改密码的间隔时间(距离上一次修改密码间隔多少天才能修改,单位/天)。

5、密码的有效期,默认99999天,可以更改。

6、密码提醒时间(表示在密码失效时间的前面几天提示更改密码,以密码失效时间的最后几天开始算,单位天)失效后禁止登录。

7、密码宽限时间(密码过期后几天仍然可以使用并且提示更改密码,单位天)过了这个时间后禁止登录(0或者没有表示没有宽限时间,-1表示永久生效)。

8、账号失效时间,时间戳为单位。没填表示永久生效。

参考技术A shadow 是 passwd 的影子文件。
在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是"盐"值,是一个随机数,后面跟的是加密的密码。为了安全,现在的linux都提供了 /etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读的。
/etc/passwd文件的每个条目有7个域,分别是名字:密码:用户id:组id:用户信息:主目录:shell
例如:ynguo:x:509:510::/home/ynguo:/bin/bash
在利用了shadow文件的情况下,密码用一个x表示,普通用户看不到任何密码信息。影子口令文件保存加密的口令;/etc/passwd文件中的密码全部变成x。Shadow只能是root可读,从而保证了安全。
/etc/shadow文件每一行的格式如下:用户名:加密口令:上一次修改的时间(从1970年1月1日起的天数):口令在两次修改间的最小天数:口令修改之前向用户发出警告的天数:口令终止后账号被禁用的天数:从1970年1月1日起账号被禁用的天数:保留域。
例如:root:$1$t4sFPHBq$JXgSGgvkgBDD/D7FVVBBm0:11037:0:99999:7:-1:-1:1075498172本回答被提问者采纳
参考技术B 用户口令的加密信息 参考技术C 密码。

Linux的shadow密码文件

在《Python绝技》这本书的第一个小程序首先展示了针对与unix系统中shadow文件密码的暴力破解的能力,因为之前只是对shadow文件停留在保存了用户密码的阶段,但并没有详细研究,所以周末两天特地花时间好好研究了一下。
1.passwd文件和shadow文件
在unix早些时候是没有/etc/shadow这个文件的。一个用户的所有信息都只是保存在/etc/passwd文件中,加密后的用户密码保存在了passwd文件的第二个字段中。那么为什么要产生shadow文件呢?
首先我们通过ls查看一下passwd文件的详细权限:
-rw-r--r-- 1 root root 1505 Mar 6 22:34 /etc/passwd
可以看出每个用户都是可读的,那么这不就把用户密码暴露给任何人了么?虽然是加过密的,但是这样也存在安全性问题。
现在的文件权限是这样的:(注意/usr/bin/passwd除了rwx权限外还有一个SetUID的s标识位)
-rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd
---------- 1 root root 964 Mar 6 22:34 /etc/shadow
首先通过对shadow文件取消所有权限,保证了只有root才能对shadow文件进行读写(root是天神,没有特殊说明任何文件都在root的管辖之下)。那么普通用户修改密码时肯定要对shadow文件进行更改的啊?通过/usr/bin/passwd的s位实现。
普通用户的修改密码流程是这样的:
test用户调用/usr/bin/passwd命令修改自己的密码,因为passwd对任何用户都是可执行的,而且s位规定所有可执行的用户在执行这个命令时变身为root,所以此时test用户拿着root的权限去读写shadow文件,当命令执行完成后变身结束,test变失去root权限。可以看出经过对shadow文件的分离,既保证了普通用户对自己密码的修改,也保证了普通用户看不到加密后的密码串提升了安全性。
2.shadow文件的组成
root:$1$abcdefg$Qp6zr7K0tHxV79N9cCLSc1:16866:0:99999:7:::
帐号名称 :root
加密后的密码:$1$abcdefg$Qp6zr7K0tHxV79N9cCLSc1
上次修改密码的日期:16866
密码不可被变更的天数:0
密码需要被重新变更的天数:99999(99999表示不需要变更)  
密码变更前提前几天警告 :7
帐号失效日期 :无
帐号取消日期 :无
保留条目,目前没用  
3.shadow文件的密码部分
shadow文件的密码部分由三个部分组成,由‘$‘分割。
以上面root用户的密码为例,按照‘$‘分割后分别是加密方式(1),salt值(abcdefg),加密后的密码串(Qp6zr7K0tHxV79N9cCLSc1)。
首先看第一个加密方式,目前加密方式有6种,最常见的只有3种:
1:MD5加密,密文长度22
5:SHA-256加密,密文长度43
6:SHA-512加密,密文长度86
4.手动生成password字串(测试于centos6.5)
方法一:dovecot包中提供dovecotadm命令。
比如:doveadm pw -s SHA512-CRYPT,其中s参数可选多种加密方式,比如SHA512-CRYPT,SHA256-CRYPT,MD5-CRYPT。
方法二:openssl包中提供passwd子命令。
比如openssl passwd -1,但是我发现只支持md5。
方法三:默认的python中自带crypt库。

__import__("crypt").crypt("password","$1$abcdefg$") 1

如果你不想自己设置指定的salt值,可以使用crypt库的mksalt函数自动生成,且提供md5,sha256,sha512全方位的支持。



以上是关于/etc/shadow保存用户的啥信息?的主要内容,如果未能解决你的问题,请参考以下文章

linux中/etc/passwd 与/etc/shadow文件权限设置多少最安全

Linux系统中关于/etc/shadow文件权限问题!

linux cat/etc/passwd该文件找不到

启动vi,更改/etc/passwd中的密码信息为不需要密码登陆。

linux 下获取了/etc/passwd 如何破解root密码

我想查找出本机linux 空口令账户,是/etc/passwd设置可以登陆,但是没有设置口令的账户