Linux中用户的密码存放位置?

时间:2020-01-09 10:44:13  来源:igfitidea点击:

Linux操作系统中用户的密码存放在什么位置?

/etc/passwd是存储每个用户帐户的密码文件。
/etc/shadow文件存储中包含用户帐户的密码信息和可选的老化信息。
/etc/group文件是一个文本文件,用于定义系统上的组。
每行只有一个条目。

Linux中用户的密码其中?

加密的密码和其他信息(例如密码到期信息(密码过期信息))存储在/etc/shadow文件中。
所有字段都用冒号(:)分隔。
对于/etc/passwd文件中列出的每个用户,它每行包含一个条目。
通常,影子文件条目如下所示:

/etc/shadow文件点击放大

顺序如下:

  • 用户名:这是您的登录名。
  • Password:这是您的加密密码。密码长度至少为8-12个字符,包括特殊字符,数字,小写字母等。通常密码格式设置为$id $salt $hashed,$id是在GNU/Linux上使用的算法,如下所示:$1 $是MD5。
  • $2a $ Blowfish
  • $2y $ Blowfish
  • $5 $是SHA-256
  • $6 $是SHA-512
  • "上次密码更改(最后更改)":自1970年1月1日以来最后一次更改密码的天数
  • Minimum:两次更改密码之间所需的最少天数,即允许用户更改其密码之前剩余的天数
  • Maximum:密码有效的最大天数(在该用户被迫更改其密码之后)
  • 警告:密码到期前的天数,警告用户必须更改其密码
  • "无效":密码过期后,该帐户被禁用的天数
  • Expire:自1970年1月1日起已禁用该帐户的天数,即一个绝对日期,指定何时不再使用登录名。

如何查看/etc/shadow文件的内容

普通用户无法直接访问/etc/shadow文件。
例如,尝试以下cat命令:

$ cat /etc/shadow

输出示例:

cat: /etc/shadow: Permission denied

您只能通过一些命令(例如passwd命令)访问/etc/shadow文件。
以root用户身份登录并在/etc/shadow文件上执行cat命令:

$ su 

出现提示时提供root用户密码:

Password:

尝试显示文件:

# cat /etc/shadow

输出示例:

root: $s83Ugoff$EDT83WAAFpCQHWDp07E9Ux:0:99999:7:::
daemon:*:13031:0:99999:7:::
bin:*:13031:0:99999:7:::

清空/etc/shadow中的每个条目分为以下几个字段:

  • 登录名
  • 加密密码
  • 自1970年1月1日以来,密码最后一次更改的天数
  • 密码更改前几天
  • 必须更改密码的天数
  • 密码到期前几天会警告用户
  • 密码过期后的几天内,该帐户已被禁用
  • 自1970年1月1日以来该帐户已禁用的天数

当然,您可以使用sudo命令,如下所示:

$ sudo cat /etc/shadow

或者grep命令和sudo一起:

$ sudo cat /etc/shadow | grep Hyman

请注意,FreeBSD使用/etc/master.shadow文件。

getent命令

要从名称服务交换机库获取条目,请使用getent命令。
语法为:

getent database key
getent [option] database key

数据库可以其中:

  • passwd读取用户帐户信息。
  • 阴影读取用户密码信息。
  • 组读取组信息。
  • key可以是用户名/组名。

例子

getent passwd
getnet passwd Hyman
getent group
getent group Hyman
sudo getent shadow
sudo getent shadow Hyman