linux系统的帐号文件主要用于存储系统用户、用户组以及对应的密码相关信息,是系统权限管理和身份认证的核心数据载体,不同的帐号文件承担着不同的功能,共同构成了linux系统的用户和组管理体系。

linux系统核心帐号文件分类
linux系统的帐号文件主要分为四类,分别对应不同的存储内容,所有文件都存放在/etc目录下,以下是具体的文件组成和说明:
| 文件名称 | 存储路径 | 核心作用 |
|---|---|---|
| passwd | /etc/passwd | 存储系统所有用户的基本信息,不包含密码内容 |
| shadow | /etc/shadow | 存储系统用户的加密密码以及密码有效期等相关信息 |
| group | /etc/group | 存储系统所有用户组的基本信息 |
| gshadow | /etc/gshadow | 存储用户组的加密密码以及组管理员相关信息 |
/etc/passwd文件结构与字段含义
/etc/passwd是linux系统最早的用户帐号文件,每一行对应一个系统用户,字段之间用冒号分隔,总共有7个字段,具体结构如下:
# 查看passwd文件前3行内容 head -n 3 /etc/passwd # 输出示例: # root:x:0:0:root:/root:/bin/bash # daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin # bin:x:2:2:bin:/bin:/usr/sbin/nologin
每个字段的具体含义如下:
- 第一个字段:用户名,用于登录系统的标识
- 第二个字段:密码占位符,早期用于存储密码,现在统一用x表示,实际密码存在shadow文件中
- 第三个字段:用户UID,0是超级用户root的UID,1-999是系统用户UID,1000及以上是普通用户UID
- 第四个字段:用户所属主组的GID
- 第五个字段:用户描述信息,可自定义填写用户说明
- 第六个字段:用户家目录路径
- 第七个字段:用户登录后使用的shell路径,如果是nologin则表示该用户无法登录系统
/etc/shadow文件结构与字段含义
/etc/shadow文件只有root用户有权限读取,用于存储用户的加密密码和密码策略信息,每一行对应一个用户,总共有9个字段,用冒号分隔,结构如下:
# 查看shadow文件前3行内容,需要root权限 sudo head -n 3 /etc/shadow # 输出示例: # root:$6$abcd1234...:19000:0:99999:7::: # daemon:*:19000:0:99999:7::: # bin:*:19000:0:99999:7:::
每个字段的具体含义如下:
- 第一个字段:用户名,和passwd文件中的用户名对应
- 第二个字段:加密后的密码,如果是*或者!表示用户无法登录,密码字段为空表示用户无密码登录
- 第三个字段:密码最后一次修改时间,是从1970年1月1日到修改日的天数
- 第四个字段:密码最小修改间隔,0表示随时可以修改,大于0表示多少天内不能修改
- 第五个字段:密码有效期,单位是天,超过该天数密码失效
- 第六个字段:密码过期前警告天数,密码到期前多少天提示用户修改密码
- 第七个字段:密码过期后的宽限天数,过期后多少天内仍可以登录,超过则完全锁定
- 第八个字段:账号失效时间,从1970年1月1日算起的天数,到达该时间账号直接失效
- 第九个字段:保留字段,暂无实际用途
/etc/group文件结构与字段含义
/etc/group文件用于存储系统用户组的基本信息,每一行对应一个用户组,总共有4个字段,用冒号分隔,结构如下:
# 查看group文件前3行内容 head -n 3 /etc/group # 输出示例: # root:x:0: # daemon:x:1: # bin:x:2:
每个字段的具体含义如下:
- 第一个字段:用户组名称
- 第二个字段:组密码占位符,和passwd文件类似,实际组密码存在gshadow文件中
- 第三个字段:用户组GID
- 第四个字段:属于该组的附加用户列表,多个用户用逗号分隔,主组用户不会显示在这里
/etc/gshadow文件结构与字段含义
/etc/gshadow文件同样只有root用户有权限读取,用于存储用户组的密码和组管理员信息,每一行对应一个用户组,总共有4个字段,用冒号分隔,结构如下:
# 查看gshadow文件前3行内容,需要root权限 sudo head -n 3 /etc/gshadow # 输出示例: # root:*:: # daemon:*:: # bin:*::
每个字段的具体含义如下:
- 第一个字段:用户组名称,和group文件中的组名对应
- 第二个字段:加密后的组密码,如果是*或者!表示组没有密码,空字段表示无密码
- 第三个字段:组管理员列表,多个管理员用逗号分隔,管理员可以修改组密码和添加删除组成员
- 第四个字段:属于该组的附加用户列表,和group文件的第四个字段内容一致
帐号文件的管理注意事项
linux的帐号文件直接关联系统的身份认证和权限控制,修改这些文件需要格外谨慎,避免导致用户无法登录或者权限混乱。如果需要修改用户信息,建议使用usermod、useradd、groupadd等系统命令,而不是直接编辑帐号文件。如果必须手动编辑文件,建议先备份原文件,编辑完成后使用pwck命令检查passwd和shadow文件的合法性,使用grpck命令检查group和gshadow文件的合法性,确保文件格式没有错误。