一,用户配置文件和密码配置文件

  • 认识/etc/passwd和/etc/shadow
    这两个文件可以说是Linux系统中最重要的文件之一。如果没有这两个文件或者这两个文件出了问题,则无法正常登录系统。

二, 解说用户配置文件/etc/passwd

注:每创建一个用户都会在这个文件里面增加一行记录。

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
....... //上面代码是前一行,下面代码是最后两行(我自己创建的用户),中间这省略的部分是当我们安装完系统之后自动存在的用户。
user1:x:1000:1000::/home/user1:/bin/bash
user2:x:1001:1002::/home/user2:/bin/bash

代码说明: 每行记录代表一个用户。每个用户分为7个字段(用:分割为7段)。

  • 第一段为用户名(如第一行中的root就是用户名),它代表用户账号的字符串。用户名中的字符可以是大小写字母,数字,减号(不能出现在首位),点或下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位。另外,减号不建议使用,容易混淆。

  • 第二段存放的是该账号的口令。这里为什么是x呢?早期的Unix系统口令确实存放在这里,但基于安全因素,后来存放在/etc/shadow中(下面会详细介绍/etc/shadow文件),这里用x代替。

  • 第三段为一个数字,这个数字代表用户标识列,也称为uid(它属于一个组,组id是第四段)。系统就是通过这个数字识别用户身份的。这里的0就是root,也就是说我们可以修改user1用户的uid为0,那么系统会认为root和test为同一个账户。uid的取值范围是0-65535(但实际上已经可以支持到4294967294),0代表超级用户(root)的标识列,Centos7的普通用户标识号从1000开始。

  • 第四段也是数字,表示组标识号,也称为gid。这个字段对应着/etc/group中的一条记录,其实/etc/group和/etc/passwd基本类似。

  • 第五段为注释说明没有实际的意义。通常记录该用户的一些属性,例如姓名,电话,地址等。我们可以使用chfn命令来更改这些信息。

  • 第六段是用户的家目录,当用户登陆时,就处在这个目录下。root的家目录是/root,普通用户的家目录是/home/username。用户家目录是可以自定义的。比如,建议一个普通用户test1,要想让test1的家目录在/data目录下,只要将/etc/passwd文件中对应该用户那行中的本字段修改为/data即可。

  • 第七段为用户的shell。用登录后,要启动一个进程,用来将用户下达的指令传给内核,这就是shell。Linux的shell有sh,sch,ksh,tcsh,bash等多种,而RedHat/CentOS的shell就是bash。查看/etc/passwd文件,该字段中除了/bin/bash,还有很多/sbin/nologin,默认是/bin/bash。

三,解说密码配置文件/etc/shadow

注:这个文件是专门用来控制用户的密码的。

[root@localhost ~]# cat /etc/shadow |head -n 3  //head -n3 表示前3行数据,|表示管道符,它的作用是把前面的命令的输出在输入给后面的命令。
root:o5XXMECZgVxLG.lh$fQueq1w3ZSgWXQU0kDpjcHYNz6kNOc9ZgZAc3lyouDA1wUM32q9OGkgktV.GmHqQZwxqC27Radb6Ab042In2k.::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::

代码说明:每行记录代表一个用户。每个用户分为9个字段(用:分割为9段)。

  • 第一段为用户名,与/etc/passwd对应。
  • 第二段为用户密码,是该账号的真正密码。 !! 代表这个用户没有密码,没有密码说明这个用户不能登录。* 代表这个密码是被锁定的不能用的,也是不能够登录的。这里的密码已经加密,为了防止黑客解密。所以,将该文件属性设置为000,但root账户是可以访问或更改的。使用命令ls
    -l查看该文件的权限,示例命令如下: [root@localhost ~]# ls -l /etc/shadow
    ———-. 1 root root 693 10月 25 23:23 /etc/shadow

  • 第三段为上次更改密码的日期,这个数字以1970年1月1日和上次更改密码的日期为基准计算而来的。例如,上次更改密码的日期为2012年1月1日,则这个值就是
    365*(2012-1970)+(2012-1970)/4+1=15341。如果是闰年,则有366天。

  • 第四段为要过多少天才可以更改密码,默认是0,即不受限制。

  • 第五段为密码多少天后到期,即在多少天内必须更改密码,例如,这里设置为30,则30天内必须更改一次密码;否则,将不能登录系统。默认是99999,可以理解为永久不更改密码。

  • 第六段为密码到期前的警告期限。若这个值设置成7,则表示当7天后密码过期时,系统就发出警告,提醒用户他的密码将在7天后到期。

  • 第七段为账号失效期限。如果这个值设置成3,则表示密码以及过期,然而用户并没有在到期前修改密码,那么再过3天,这个账号便失效,即锁。

  • 第八段为账号的生命周期,跟第三段一样,这个周期是按距离1970年1月1日算起。它表示,账号在这个日期前可以使用,到期后账号将作废。

  • 第九段作为保留用的,没有什么意义。

用户配置文件/etc/passwd和密码配置文件/etc/shadow详解相关推荐

  1. python telnet线程锁_对python使用telnet实现弱密码登录的方法详解

    系统环境: 64位win7企业版 python2.7.10 2016.08.16修改内容: 1)read_until()函数是可以设置timeout的,之前不能获取到password之后的返回是因为调 ...

  2. 怎么往integer型数组添加数据_用户日活月活怎么统计 - Redis HyperLogLog 详解

    HyperLogLog 是一种概率数据结构,用来估算数据的基数.数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID. 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的 ...

  3. python如何调用文件进行换位加密_python 换位密码算法的实例详解

    python 换位密码算法的实例详解 一前言: 换位密码基本原理:先把明文按照固定长度进行分组,然后对每一组的字符进行换位操作,从而实现加密.例如,字符串"Error should neve ...

  4. python sqlsever 时间_Python sqlalchemy时间戳及密码管理实现代码详解

    一.时间戳 实际开发中,我们一般希望create_time和update_time这两个属性能自动设置,所以在建表的时候需要在model上特殊处理一下: from sqlalchemy.sql imp ...

  5. 【鸿蒙OS开发入门】13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解

    [鸿蒙OS开发入门]13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解 一. /etc/init.cfg 系统默认cfg:启动lo回环网卡 1.1 init.Hi35 ...

  6. Linux用户配置密码,linux用户配置文件passwd和密码配置文件shadow,用户管理,组管理...

    一.linux和windows互传文件 1.安装支持包:lrzszyum -y install   lrzszputty工具 不支持lrzsz 2.rz windows文件fail2ban-0.8.1 ...

  7. 用户配置文件passwd、密码配置文件shadow、用户组配置文件group、用户及用户组管理

    用户配置文件passwd [root@localhost ~]# ls /etc/passwd /etc/passwd [root@localhost ~]# cat /etc/passwd 以下为内 ...

  8. linux与windows互传文件、用户与用户组管理、密码配置文件

    linux与windows互传文件 用户配置文件与密码配置文件 root:x:0:0:root:/root:/bin/bash 是用户名 密码 uid:gid 用户的家目录 表示用户可以登陆 bin: ...

  9. java spring bean配置文件_Spring基于xml文件配置Bean过程详解

    这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过全类名来配置: class:be ...

最新文章

  1. 弹出popwindow 背景变暗
  2. 媳妇居然在家偷偷背着我偷看我的面试笔记,一个月后拿下大厂offer!(文末送书)...
  3. 第三讲-------Logistic Regression Regularization
  4. python教程:几个基础类型循环删除
  5. 案例代码:sprimngboot备份数据库
  6. 「 Luogu P2574 」 XOR的艺术——线段树
  7. android R 文件 丢失的处理 如何重新生成
  8. 388. Longest Absolute File Path
  9. PCB制图 | Altium Designer 20软件汉化
  10. TcpClient Class
  11. stm32(十八)TFT-LCD
  12. lucene 学习笔记之飞龙在天
  13. Gartner发布2022年新兴技术成熟度曲线,推动沉浸式、AI自动化发展
  14. 计算机价格谈判议程,谈判议程
  15. mini《猜字》游戏,谁玩谁迷糊
  16. 笔记4.3.1缩放规范化--最小值最大值缩放和最大绝对值缩放
  17. 三字经全文(此版本是读诵最多的)
  18. 用luasocket读取双色球中奖号码
  19. SVN-Failed to run the WC DB work queue associated with blablabla
  20. 基于android的网络协议于ESP8266实现通信控制

热门文章

  1. Unity打包失败的Bug:Could not resolve com.tencent.mm.opensdk:wechat-sdk-android:+.
  2. php 查询构造器,Laravel框架查询构造器常见用法总结
  3. Iphone黑屏重启手机
  4. c语言strcmp的作用,c语言strcmp的用法
  5. 怎么利用手机App做任务赚钱
  6. 内网渗透思路06之一次完整的渗透测试
  7. html标签属性语音,HTML area 标签 media 属性
  8. 分治算法(一)二分搜索技术
  9. 从陌生到熟悉,再变成最熟悉的陌生人:伤感日志
  10. 处理表中id字段中,序号顺序不连贯