1./etc/passwd
etc/passwd
文件中的字段及其含义如下:
- 用户名:用户的登录名。
- 密码占位符:早期用于存储加密后的用户密码,现在通常为
x
或不存储实际密码。 - 用户标识号(UID):唯一标识用户的数字。
- 组标识号(GID):用户所属主组的标识号。
- 用户信息:关于用户的一些描述信息。
- 家目录:用户的主目录路径。
- 登录 Shell:用户登录后使用的 Shell 程序。
举个例子:
user1:x:1001:1001:User One:/home/user1:/bin/bash
在这个例子中:
- 用户名:
user1
- 密码:
x
(表示密码不在这里存储) - 用户标识号(UID):
1001
- 组标识号(GID):
1001
- 用户信息:
User One
- 家目录:
/home/user1
- 登录 Shell:
/bin/bash
2./etc/shadow
etc/shadow
文件是Linux
系统中用于存储用户密码信息的重要文件,只有root
用户拥有读权限,其他用户没有任何权限。文件中的字段及其含义如下:
- 用户名:该用户名必须是系统上存在的有效的用户名。
- 加密密码:采用了某种加密算法对用户密码进行加密后的结果。
- 最近一次修改密码的时间:从1970年1月1日起到最近一次修改密码的时间间隔。
- 密码最短使用期限:表示在这个期限内不允许修改密码。
- 密码最长使用期限:表示密码的最长使用期限,超过这个期限后需要修改密码。
- 密码过期前的警告期限:表示在密码过期前多少天系统会发出警告。
- 密码过期后的宽限时间:表示在密码过期后多少天用户仍然可以登录,但必须修改密码。
- 账号失效时间:表示账号的失效时间,超过这个时间后账号将无法使用。
- 保留字段:目前没有使用,通常为空。
举个例子:
root:$6$nGLjUblr$XzN7O1wc/POpUW0RskYeDwL7ZY/M2JRsur7OTzVEpJAp8RIz9El/5D6vo1D2Rw27Ga9eK0ttXFsFAjBReFALm.:18447:0:99999:7:::
在这个例子中:
- 用户名:
root
,表示该条目对应的用户名。 - 密码:
$6$nGLjUblr$XzN7O1wc/POpUW0RskYeDwL7ZY/M2JRsur7OTzVEpJAp8RIz9El/5D6vo1D2Rw27Ga9eK0ttXFsFAjBReFALm
,这是加密后的密码。密码通常由一系列字符组成,包括加密算法的标识、盐值和加密后的密码本身。 - 最近更改密码的日期:
18447
,表示从 1970 年 1 月 1 日起的天数,用于记录上次更改密码的时间。 - 密码不可更改的天数:
0
,表示在指定的天数内用户不能更改密码。 - 密码需要更改的天数:
99999
,表示在指定的天数后用户需要更改密码。 - 密码过期前的警告天数:
7
,表示在密码过期前提前多少天向用户发出警告。 - 密码过期后的宽限天数:
0
,表示密码过期后多少天用户仍然可以登录系统。 - 账号失效日期:
空
,表示该账号没有失效日期
需要注意的是,实际的 /etc/shadow
文件内容可能会因系统配置和安全策略的不同而有所差异。此外,密码通常是加密存储的,以保护用户的隐私和系统的安全。
3./etc/group
/etc/group
文件用于存储系统中的用户组信息,每行代表一个用户组,包含以下几个字段:
- 组名:用户组的名称,由字母、数字、下划线和连字符组成,不能以数字开头。
- 组密码:用户组的密码,如果为空则表示没有密码。
- GID:用户组的组 ID,是一个数字,唯一标识一个用户组。
- 组成员:属于该用户组的用户列表,用逗号分隔。
举个例子:
developers:x:1001:user1,user2
在这个例子中:
- 组名:
developers
- 组密码:
x
(通常为空,表示无密码) - GID:
1001
- 组成员:
user1
和user2