学习笔记 · 2017年3月12日

passwd 和 shadow 文件详解

浏览:55

文章目录[隐藏]

passwd

# /etc/passwd
# man 5 passwd

hzz:x:1000:1000::/home/hzz:/bin/bash
|   |   |   |   |   |       |
|---|---|---|---|---|-------|-------- 用户名
    |---|---|---|---|-------|-------- 密码(x为占位符,具体密码存储于shadow)
        |---|---|---|-------|-------- UID(用户ID)
            |---|---|-------|-------- GID(用户所属主组ID)
                |---|-------|-------- GECOS(用户注释信息)
                    |-------|-------- 用户主目录
                            |-------- 默认shell

shadow

# /etc/shadow
# man 5 shadow

# 整体使用:分隔
hzz:(加密区):17236:0:99999:7:::
# 用户名:加密了的密码:最近一次更改密码的日期(从1970/1/1到当前密码修改日期的天数):密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段

# 加密区

# 加密区用$分隔
$6$DNyFSKo1$P8daYpB748rXd9oaqND8dTC85mUYCOlLarKV6NyGTujMHGRjeaHrO6HeTdgOFx0zUIOxWtik5rucRHTOk0hYx1
# !! # 若在$前面出现!!,则表示禁止登录。
# 6 # sha512加密。
# DNyFSKo1 # 为了使相同的密码加密不同而加的随机数,每个账号都不同。
# P8daYpB... # 密码加入随机数后重新加密而成的密文。

加密机制

Linux的用户密码加密使用单向加密,即:

密文=用户密码+随机数+sha256

解密方式为:

输入的密码+随机数+sha256=密文

由于有随机数的存在,即使两个用户的密码相同,加密后的密文也是不同的。