在 Linux 系统,可以使用几种不同的身份验证方案。最常用和标准的方案是对 /etc/passwd 和 /etc/shadow 文件执行认证。

/etc/passwd 是基于纯文本的数据库,其中包含系统所有用户帐户的信息,文件所有权归root用户所有,具有 644 权限

/etc/passwd 文件只能由root用户或具有 sudo 权限的用户可以修改,并且所有系统用户都可以读取。

除非您知道自己在做什么,否则应避免手动修改 /etc/passwd 文件。应该始终使用专门为此目的设计的命令。

例如要修改用户帐户,请使用 usermod 命令。如需要添加新的用户帐户,请使用useradd 命令

在本教程中,我们将说明 /etc/passwd 文件所包含的信息。包括使用 usermod,passwd 修改文件信息。

/etc/passwd 格式

/etc/passwd 文件是一个文本文件,每行一个条目,代表一个用户帐户。要查看文件的内容,请使用文本编辑器cat 命令

通常,第一行描述 root 用户,然后是系统用户和普通用户帐户。 每当创建新的用新条目将追加到文件末尾。

cat /etc/passwd
mark:x:1001:1001:mark,,,:/home/mark:/bin/bash
[--] - [--] [--] [-----] [--------] [--------]
|    |   |    |     |         |        |
|    |   |    |     |         |        +-> 7. login shell
|    |   |    |     |         +----------> 6. Home directory
|    |   |    |     +--------------------> 5. GECOS
|    |   |    +--------------------------> 4. GID
|    |   +-------------------------------> 3. UID
|    +-----------------------------------> 2. Password
+----------------------------------------> 1. Username

/etc/passwd文件的每一行都包含七个冒号分隔的字段。

Username 用户名。登录系统时输入的用户名。每个用户名在计算机上必须是唯一的字符串。用户名的最大长度限制为32个字符。

Password 密码。在较旧的 Linux 系统中,用户的加密密码存储在 /etc/passwd 文件中。在现代的 Linux 系统,此字段设置为 x,用户密码存储在 /etc/shadow 文件。

UID 用户ID。用户标识符是分配给每个用户的号码。

GID 组ID。GID 用户的组标识号,操作系统使用它来组织用户。这个 GID 是指用户的主要组。

当用户创建文件时,文件的组将设置为此组。通常,组的名称与用户的名称相同。 /etc/groups 文件包含用户的次要组

GECOS 用户信息。该字段包含逗号分隔的值,其中包含用户的全名或应用程序名称,地址,工作电话号码,电话号码,其他联系信息。

Home directory 家目录。用户家目录的绝对路径。它包含用户的配置文件。默认情况下,用户家目录以用户名命名,并创建在 /home 目录。

login shell 登录 Shell。用户登录Shell程序的绝对路径。这是用户登录系统时启动的 Shell 程序。在大多数 Linux 发行版,默认登录shell为Bash。

结论

/etc/passwd 文件保存 Linux 系统的所有用户配置信息。如果您有任何问题或反馈,请随时发表评论。