Linux系统账户配置文件 passwd 与 shadow
与账户管理有关的是:账户的身份验证、账户的使用权限。
账户有:本地账户 和 外部账户 之分。
本地账户的配置文件:
- /etc/passwd
- /etc/shadow
- /etc/gpasswd
- /etc/gshadow
/etc/passwd 与 /etc/shadow
/etc/passwd
这两个文件互为一起,早期的系统只有 passwd 文件,为了安全后面就配合使用了 shadow
/etc/passwd 的文件格式
name:password:UID:GID:GECOS:directory:shell
用户名:密码:用户的ID:用户的组ID:有关用户的注释:用户的家目录:登陆系统使用的shell环境
用户名也叫注册名,密码也称口令。
/etc/passwd 文件是一个用来描述用户登陆该系统账户的文本文件,这个文件有读的权限,只有系统管理员有修改的权限,在以前虽然每个人都有读取权限阅读加密的密码,但是由于硬件设备的孱弱所以机器不能轻易破解指定好了的密码,同时早期的计算机一般是在内部使用是相对友好的。
如今为了安全系统中增加了 shadow 这个文件,这是一个有关 passwd 文件的 影子,具体就表现在 passwd 文件中的第二部分 password 。
passwd 可以后三种情况:① 通常创建用户后,该部分表现为 x ,② 如果是 * 则表示用户存在但是不能登陆,③而如果是空字符串很形象的理解就是没有密码了,自然可以在不用输入密码就能直接登录(不过还需要对其他文件进行设置)
x 就是有关于 shadow 文件的部分,这里的 x 的内容被加密了,加密的部分就放在了 shadow 文件中,仅仅只有系统管理员可以去查看。
# cat /etc/passwd
hp:x:1000:1000::/home/hp:/usr/bin/bash
hp 用户的第二个x就是有关于 shadow 文件的部分,这里的 x 的内容被加密了,加密的部分就放在了 shadow 文件中,仅仅只有系统管理员可以去查看。
示列:
jack:x:1001:1001::/home/jack:/bin/bash
↑
login as: jack
jack@192.168.10.10's password:
[jack@localhost ~]$
# vi /etc/passwd
jack:*:1001:1001::/home/jack:/bin/bash
↑
login as: jack
jack@192.168.10.10's password:
Access denied
jack@192.168.10.10's password:
Access denied
jack@192.168.10.10's password:
/etc/shadow
shadow 文件用于包含账户的信息,和用户有关日期的设置
/etc/shadow 还有一个备份文件叫 /etc/shadow-
shadow 文件具体示列如下:
hp:$6$J6JCdieZ$YbxjwkfAiXN7PYWY84qZaHiHK/2.VcTMQiJv54F4XtThlyCdE8AmZZNbEuPpTwUu0k9TyoMIg/9IzKf5UGdZ./:19567:0:99999:7:::
每一行文件都有9个用 : 隔开的信息。
login name:encrypted password:date of last password change: minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
login name:登录名,该登录名是在系统中存在的有效用户。
encrypted password:加密的密码,该部分选择的内容可能和 passwd 的第二部分是一样的,如果为空,则表示用户不需要密码就能登录,一些应用会读取 shadow 当这一部分是空的时候那么是可以不允许该用户来进行操作的,用户这一部分是 ! 和 * 号的时候,很大程度来讲该用户是没有登陆的能力的。
当这个加密的密码前面有 ! 开头则表示密码被锁定
date of last password change:上次密码更改的日期,我这里是 19567 表示的意思是从unix 开始的年份(1970年1月1日)算起已经经过了 19567 天了。
【19567÷360≈54年,1970+54=2024年,2024年就是现在的年份】
当这一部分为 0 的时候,则表示用户在下一次登陆的时候要修改自己的用户密码了。
minimum password age:密码可存在的最小日期,假如是3则表示在3天之内密码是不能更改的,3天后密码才能改,0 表示可以随时改。
maximum password age:密码存在的最大日期,这一部分表示的密码最多能存活多久的日期,在该日期之前应该来讲是要修改密码的。
password warning period:密码警告期限:这与 maximum passwd age 是一块的,警告日期为7的意思表示,在到期日期前7天会警告该用户需要修改密码了。
password inactivity period:不能使用密码的日期:在密码过期后依旧有登录的能力,这时该用户可以修改自己的密码,但是超过该日期后账号将真的无法登陆了。
account expiration date:账户过期时间:与密码过期时间要分开,密码过期后用户是能修改密码的,而账户过期后该用户就没有任何能力了,可以说是被系统除名了。
reserved field:保留字段,此字段保留以备将来使用。

浙公网安备 33010602011771号