当前位置:首页 > 站长知识 > 正文内容

Debian Unix认证方法详解

2024-08-27站长知识17

在Debian系统中,一般的 Unix 认证由 PAM(Pluggable Authentication Modules,即可插拔的验证模块)下的 pam_unix(8) 模块提供。它的三个重要文件分别是/etc/passwd、/etc/shadow和/etc/group,其中的条目使用“:”进行分隔。

一、/etc/passwd

下表展示了pam_unix(8) 使用的 3 个重要配置文件:

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

“/etc/passwd” 包含下列内容:

...
user1:x:1000:1000:User1 Name,,,:/home/user1:/bin/bash
user2:x:1001:1001:User2 Name,,,:/home/user2:/bin/bash
...

这个文件中被 “:” 分隔的每项含义如下:

  • 登录名

  • 密码形式说明

  • 数字形式的用户 ID

  • 数字形式的组 ID

  • 用户名或注释字段

  • 用户家目录

  • 可选的用户命令解释器

二、/etc/passwd

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

下表展示了“/etc/passwd” 第二项的内容:

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

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

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

这个文件中被 “:” 分隔的每项含义如下:

  • 登录名

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

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

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

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

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

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

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

三、/etc/group

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

group1:x:20:user1,user2

这个文件中被 “:” 分隔的每项含义如下。

  • 组名称

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

  • 数字形式的组 ID

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

注意:

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

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