zoukankan      html  css  js  c++  java
  • Linux中/etc/passwd 和 /etc/shadows 详解

    linux操作系统上的用户如果需要登录主机,当其输入用户名和密码之后:

    1. 首先在/etc/passwd文件中查找是否有你的账号,如果没有无法登录,如果有的话将该用户的UID和GID读出来,此外将此用户的shell设置也一并读出。
    2. 然后根据UID到/etc/shadow文件中去寻找相应用户的密码,如果匹配一致
    3. 进入shell控制的阶段。

    下面我们详细解释这两个文件:

     一:/etc/passwd   

    root@kali:~# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    test:x:1000:1000::/home/test:/bin/sh

    字段之间用 :分开.

    字段含义
    1 用户名
    2 用户的密码原来直接存储在第二字段,但是为了安全,最后专门有了/etc/shadow文件,现在默认用x替代
    3 用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
    4 用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。
    5 用户的账号说明解释
    6 用户的家目录文件夹
    7 用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。

     二:/etc/shadow

    root@kali:~# cat /etc/shadow
    root:$6$DUiJ86eR$qR8rjOj3wK0niIGnFxatv/hw5/198D8kIVYa.RjxvdWgZMrPSrVU4tcio0G/vRvVoGY5AYOKziVo9kFVIgnYS1:17631:0:99999:7:::
    daemon:*:17557:0:99999:7:::
    bin:*:17557:0:99999:7:::
    sys:*:17557:0:99999:7:::
    sync:*:17557:0:99999:7:::
    games:*:17557:0:99999:7:::
    man:*:17557:0:99999:7:::
    字段含义
    1 用户名
    2 用户的密码加密字段
    3 密码已经使用的日期(从1970-01-01开始,为什么?因为unix1969年发布雏形,基于当时对系统的考虑,就这样了)
    4 密码最少多少天之后可以修改(例子中是3天之后,也就是修改一次3天之后才能再次修改)
    5 密码多少天之后必须修改(例子中99999就是表明可以一直不用修改密码)
    6 密码修改之前几天提醒我修改(例子中是7天之前)
    7 要是没有修改延长几天(例子中延长3天)
    8 无论怎样到这个时间过期(例子中的时间从1970-01-01算)
    9 保留字段,目前无含义

    转载自:https://blog.csdn.net/yangbodong22011/article/details/50753906

  • 相关阅读:
    对结构体的快速排序问题(用库函数)
    图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))
    Linux root 密码重置与用户管理
    Linux command’s Array
    linux command intro2 vi
    Linux Commands intro1
    Beeline known issues
    spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?
    spark Basic code demo
    HADOOP cluster some issue for installation
  • 原文地址:https://www.cnblogs.com/SzSec/p/8999436.html
Copyright © 2011-2022 走看看