zoukankan      html  css  js  c++  java
  • linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释

    一、/etc/passwd 是用户数据库,其中的域给出了用户名、加密口令和用户的其他信息

    /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文 件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:


    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
    1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
    2)“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登
    录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
    3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同
    的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
    4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
    5)“最大时间间隔”指的是口令保持有效的最大天数。
    6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
    7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
    8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。
    期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

    下面是/etc/shadow的一个例子:
    #cat /etc/shadow
    root:Dnakfw28zf38w:8764:0:168:7:::

    /etc/passwd
    该目录存储的是操作系统用户信息,该文件为所有用户可见。
    给linux系统添加一个帐号:
    useradd -g mysql -d /home/test -m test(:新建一个用户test, 属于mysql组,开始目录是/home/test)
    然后进入 /etc/passwd,可以看到如下信息,在最后一行可以看到刚加的用户的信息。如下
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
    webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
    squid:x:23:23::/var/spool/squid:/sbin/nologin
    pcap:x:77:77::/var/arpwatch:/sbin/nologin
    haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
    xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
    hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
    gdm:x:42:42::/var/gdm:/sbin/nologin
    hzmc:x:500:500:hzmc:/home/hzmc:/bin/bash
    mysql:x:501:501::/home/mysql:/bin/bash
    chenhua:x:503:501::/home/chenhua:/bin/bash
    test:x:504:501::/home/test:/bin/bash
    可以看出/etc/passwd文件存放的是用户的信息,由6个分号组成的7个信息,解释如下
    (1):用户名。
    (2):密码(已经加密)
    (3):UID(用户标识),操作系统自己用的
    (4):GID组标识。
    (5):用户全名或本地帐号
    (6):开始目录
    (7):登录使用的Shell,就是对登录命令进行解析的工具。

    二、/etc/shadow是在安装了影子(shadow)口令软件的系统上的影子口令文件

    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

    下面为test用户设置密码,执行如下命令
    passwd test
    [root@localhost etc]# passwd test
    Changing password for user test.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
    [root@localhost etc]#
    然后进入/etc/shadow文件下面可以看到如下信息
    gdm:!!:14302:0:99999:7:::
    hzmc:$1$JZMjXqxJ$bvRpGQxbuRiEa86KPLhhC1:14302:0:99999:7:::
    mysql:!!:14315:0:99999:7:::
    chenhua:$1$YBJZNyXJ$BnpKFD58vSgqzsyRO0ZeO1:14316:0:99999:7:::
    test:$1$hKjqUA40$OelB9h3UKOgnttKgmRpFr/:14316:0:99999:7:::
    可以发现,共有9个栏目
    (1):帐号名称
    (2):密码:这里是加密过的,但高手也可以解密的。要主要安全问题(代!符号标识该帐号不能用
    来登录)
    (3):上次修改密码的日期
    (4):密码不可被变更的天数
    (5):密码需要被重新变更的天数(99999表示不需要变更)
    (6):密码变更前提前几天警告
    (7):帐号失效日期
    (8):帐号取消日期
    (9):保留条目,目前没用

    Unix 系统最初是用明文保存密码的,后来由于安全的考虑,采用crypt()算法加密密码并存放在/etc/passwd文件。现在,由 于计算机处理能力的提高,使密码破解变得越来越容易。/etc/passwd文件是所有合法用户都可访问的,大家都可互相看到密码的加密字符串,这给系统 带来很大的安全威胁。现代的Unix系统使用影子密码系统,它把密码从/etc/pa sswd文件中分离出来,真正的密码保存在/etc/shadow文件中,shadow文件只能由超级用户访问。这样入侵者就不能获得加密密码串,用于破 解。使用shadow密码文件后,/etc/passwd文件中所有帐户的password域的内容为"x",如果password域的内容为"*",则 该帐号被停用。使用passwd这个程序可修改用户的密码。

    三、/etc/group 存储有关本地用户组的信息

    1)groupname GID到名称的一种映射,组名
    2)password 保存密码的位置
    3)GID 组ID
    4)user 组成员

  • 相关阅读:
    centos8 将SSSD配置为使用LDAP并要求TLS身份验证
    Centos8 搭建 kafka2.8 .net5 简单使用kafka
    .net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
    Springboot根据不同环境加载对应的配置
    VMware Workstation12 安装 Centos8.3
    .net core json配置文件小结
    springboot mybatisplus createtime和updatetime自动填充
    .net core autofac依赖注入简洁版
    .Net Core 使用 redis 存储 session
    .Net Core 接入 RocketMQ
  • 原文地址:https://www.cnblogs.com/sword082419/p/9295561.html
Copyright © 2011-2022 走看看