• shadow密码文件


    登录Linux会要求输入用户名和密码。通常本地文件中会存储一份用户密码,并与用户输入对比,如果相同就允许用户登录。起初用户密码存储与/etc/passwd中,但由于/etc/passwd必须供所有用户读取,因此为了避免密码破译,unix系统将加密后的密码存储于/etc/shadow中,仅供超级用户可读。

    /etc/shadow中密码格式:

    $id$salt$encrypted
    

      id表示hash算法。起初密码用DES算法加密,单随着DES加密破解难度的降低,已用其他加密算法替代DES。在shadow文件中,密码字段如果以“$”打头,则表示非DES加密,如:

    $1$2eWq10AC$NaQqalCk3
    

      即表示非DES加密密码,而$1$表示使用了基于MD5的加密算法。

    $2a$04$NZJWn7W2skvQRC5lW3H7q.ZTE8bz4xbC
    

      $2a$表示Blowfish算法。常见的标识与算法:

    ID  算法
    $1$  MD5
    $2a$ Blowfish
    $5$ SHA-256
    $6$ SHA-512

    /etc/passwd文件的格式:

    username:passwd:UID:GID:full_name:directory:shell
    

      

    从shadow文件中摘录数行:

    root:$1$TCVDVaiT$JC7TbKjvIZpIprdehWFH/1:15157:0:99999:7:::
    bin:*:15157:0:99999:7:::
    daemon:*:15157:0:99999:7:::
    

      /etc/shadow文件的每行由9个字段组成,以“:”作为字段分隔符。每个字段的说明:

    1. 用户名

    2. 加密后的密码。如果密码是“*”或“!”,则表示不会用这个帐号来登录(通常是一些后台进程)

    3. 密码最后修改时间。 从1970年1月1日起计算的天数。

    4. 不可修改密码的天数。 如果是0,则表示可以随时修改密码。如果是N,表示N天后才可修改密码。

    5. 密码可以维系的天数。如果设置为N,表示N天后必须更新密码。设置为99999通常表示无需更新密码。

    6. 在密码必须修改前的N天,就开始提示用户需要修改密码。

    7. 密码过期的宽限时间。

    8. 帐号失效时间。也是UNIX时间戳格式。

    9. 保留字段。

    pwconv系列命令

    pwconv命令从/etc/passwd生成/etc/shadow。它将密码从passwd文件中抽取出来放到shadow文件中。

    运行pwunconv命令则会关闭shadow功能,并把加密密码转移到passwd中。

    系统启动时,就默认开启了pwconv

    1 ls -l /etc/passwd /etc /shadow
    2 -rw-r--r-- 1 root root   2342 Mar 29 18:55 /etc/passwd
    3 -rw-r----- 1 root shadow 1393 Mar 29 18:55 /etc/shadow

    取root用户对比两个文件的记录:

    1 $ cat /etc/shadow | grep ^root
    2 root:x:0:0:root:/root:/bin/bash
    3 
    4 $ cat /etc/shadow|grep ^root
    5 root:$6$0fa52kBa$5rQfmjjrmvVmepfQylZINajIUp/cTWi9GjdgONbYVRPlstFbjD54DXUgA2yE5QxdWm0ZX4.z238E/IPv0yAxY0:15946:0:99999:7:::

    关闭shadow:

    1 $ pwunconv

    此时shadow文件消失。

    再次查看passwd文件:

    1 cat /etc/passwd | grep ^root
    2 root:$6$0fa52kBa$5rQfmjjrmvVmepfQylZINajIUp/cTWi9GjdgONbYVRPlstFbjD54DXUgA2yE5QxdWm0ZX4.z238E/IPv0yAxY0:0:0:root:/root:/bin/bash

    可以看到shadow中的加密密码被转移到了passwd中。

    运行pwconv,即可恢复shadow文件

  • 相关阅读:
    TP框架中模板赋值
    使用PHP和GZip压缩网站JS/CSS文件加速网站访问速度
    测试相关知识分享(百度和其他途径查找到的)
    测试基本概念
    shell编程之重定向
    shell编程之函数
    shell编程之循环
    shell编程之测试和判断
    shell编程之变量
    Linux系统学习之正则表达式
  • 原文地址:https://www.cnblogs.com/Genesis-007/p/5368760.html
Copyright © 2020-2023  润新知