4.1. 一般的 Unix 认证

一般的 Unix 认证由 PAM (Pluggable Authentication Modules,即可插入的验证模块) 下的 pam_unix(8) 模块提供。它的 3 个重要文件如下,其内的条目使用 “:” 分隔。

表 4.1. pam_unix(8) 使用的 3 个重要配置文件

文件权限用户说明
/etc/passwd-rw-r—r—rootroot(明文的)用户账号信息
/etc/shadow-rw-r——-rootshadow安全加密的用户账号信息
/etc/group-rw-r—r—rootroot组信息

/etc/passwd” 包含下列内容。

  1. ...
  2. user1:x:1000:1000:User1 Name,,,:/home/user1:/bin/bash
  3. user2:x:1001:1001:User2 Name,,,:/home/user2:/bin/bash
  4. ...

如 passwd(5) 中所述,这个文件中被 “:” 分隔的每项含义如下。

  • 登录名

  • 密码形式说明

  • 数字形式的用户 ID

  • 数字形式的组 ID

  • 用户名或注释字段

  • 用户家目录

  • 可选的用户命令解释器

/etc/passwd” 的第二项曾经被用来保存加密后的密码。在引入了 “/etc/shadow” 后,该项被用来说明密码形式。

表 4.2. “/etc/passwd” 第二项的内容

内容说明
(空)无需密码的账号
x加密后的密码保存在 “/etc/shadow
*无法登陆的账号
!无法登陆的账号

/etc/shadow” 包含下列内容。

  1. ...
  2. user1:$1$Xop0FYH9$IfxyQwBe9b8tiyIkt2P4F/:13262:0:99999:7:::
  3. user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7:::
  4. ...

如 shadow(5) 中所述,这个文件中被 “:” 分隔的每项含义如下。

  • 登录名

  • 加密后的密码(开头的 “$1$” 表示使用 MD5 加密。“*” 表示无法登陆。)

  • 最后一次修改密码的时间,其表示从 1970 年 1 月 1 日起的天数

  • 允许用户再次修改密码的天数间隔

  • 用户必须修改密码的天数间隔

  • 密码失效前的天数,在此期间用户会被警告

  • 密码失效后的天数,在次期间密码依旧会被接受

  • 账号失效的时间,其表示从 1970 年 1 月 1 日起的天数

/etc/group” 包含下列内容。

  1. group1:x:20:user1,user2

如 group(5) 中所述,这个文件中被 “:” 分隔的每项含义如下。

  • 组名称

  • 加密后的密码(不会被真正使用)

  • 数字形式的组 ID

  • 使用 “,” 分隔的用户名列表

[注意]注意

/etc/gshadow” 为 “/etc/group” 提供了与 “/etc/shadow” 相似的功能,但没有被真正地使用。

[注意]注意

如果”auth optional pam_group.so“ 这行添加到了”/etc/pam.d/common-auth“,并且在”/etc/security/group.conf“ 里进行了设置,一个用户的实际组就可以被动态添加。参见 pam_group(8).

[注意]注意

base-passwd 软件包包含了一份用户和组的官方文档:“/usr/share/doc/base-passwd/users-and-groups.html”。