一、/etc/passwd
- 用途:用户的配置文件, 保存用户账户的基本信息
- /etc/passwd文件中每行定义一个用户账号,有多少行就表示多少个账号,在一行中可以清晰的看出,各内容之间又通过”:”号划分了7个字段,这7个字段分别定义了账号的不同属性
- passwd文件分析
- 字段1:用户名,这是用户登陆时使用的账户名称,在系统中是唯一的,不能重名
- 字段2:密码占位符x,这个密码字段内容在/etc/shadow中。
- 字段3:UID;范围是0-65535
- 字段4:GID;范围是0-65535;当添加用户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组。
- 字段5:用户说明;这个字段是对这个账户的说明
- 字段6:用户家目录;用户登陆后首先进入的目录,一般与”/home/用户名”这样的目录
- 字段7:登录Shell 当前用户登陆后所使用的shell,在centos/rhel系统中,默认的shell是bash;如果不希望用户登陆系统,可以通过usermod或者手动修改passwd设置,将该字段设置为/sbin/nologin 即可。大多数内置系统账户是/sbin/nologin,这表示禁止登陆系统。
- 文件说明
因为每个用户登录时都需要取得UID和GID来判断权限问题,所以/etc/passwd的权限为644,这样一来就会带来安全问题,即所有的用户都可以查看/etc/passwd文件,即使文件内的密码是加密的,但还是存在一定的被攻击破解的安全隐患。因此,就有了/etc/shadow文件。
二、/etc/shadow
- 用途:用户的影子口令文件
- 文件说明
由于passwd文件必须要被所有的用户读,所以会带来安全隐患。而shadow文件就是为了解决这个安全隐患而增加的。shadow文件的每一行内容,也是以冒号(:)作为分隔符,共9个字段
- shadow文件分析
- 字段1:帐号名称
- 字段2:加密的密码
- 字段3:最近更改密码的时间;从1970/1/1到上次修改密码的天数
- 字段4:禁止修改密码的天数;从1970/1/1开始,多少天之内不能修改密码,默认值为0(和第3字段相比)
- 字段5:用户必须更改口令的天数;密码的最长有效天数,默认值为99999(和第3字段相比)
- 字段6:警告更改密码的期限;密码过期之前警告天数,默认值为7;在用户密码过期前多少天提醒用户更改密码。一旦超过密码过期日期,用户成功登陆,Linux会强迫用户设置一个新密码,设置完成后才开启Shell程序(和第5字段相比)
- 字段7:不活动时间;密码过期之后账户宽限时间 3+5;在用户密码过期之后到禁用账户的天数(和第5字段相比)
0:代表密码过期后立即失效
-1:则代表密码永远不会失效。
- 把时间戳换算为日期
- 把日期换算为时间戳