了解/etc/passwd文件

时间:2020-03-05 15:26:38  来源:igfitidea点击:

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

“/etc/passwd”是基于纯文本的数据库,其中包含系统上所有用户帐户的信息。
它由root拥有,并具有644权限。

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

除非我们知道自己在做什么,否则应避免手工修改“/etc/passwd”文件。
始终使用专门为此目的设计的命令。
例如,要修改用户帐户,请使用“ usermod”命令,并添加新的用户帐户,请使用“ useradd”命令。

'/etc/passwd'格式

“/etc/passwd”文件是一个文本文件,每行一个条目,代表一个用户帐户。
要查看文件的内容,请使用文本编辑器或者诸如“ cat”之类的命令:

cat /etc/passwd

通常,第一行描述根用户,然后是系统帐户和普通用户帐户。
新条目将添加在文件末尾。

“/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
  • 用户名。登录系统时输入的字符串。每个用户名在计算机上必须是唯一的字符串。用户名的最大长度限制为32个字符。
  • 密码。在较旧的Linux系统中,用户的加密密码存储在“/etc/passwd”文件中。在大多数现代系统上,此字段设置为'x',并且用户密码存储在'/etc/shadow'文件中。
  • UID。用户标识符是分配给每个用户的号码。操作系统使用它来指代用户。
  • GID。用户的组标识号,指的是用户的主要组。用户创建文件时,文件的组将设置为此组。

通常,组的名称与用户的名称相同。用户的辅助组在“/etc/groups”文件中列出。

  • GECOS或者用户的全名。该字段包含逗号分隔值的列表,并包含以下信息:
  • 用户的全名或者应用程序名称。
  • 房间号。
  • 工作电话号码。
  • 家庭电话号码。
  • 其他联系信息。
  • 主目录。用户主目录的绝对路径。它包含用户的文件和配置。默认情况下,用户主目录以用户名命名,并在“/home”目录下创建。
  • 登录shell。用户登录shell程序的绝对路径。这是用户登录系统时启动的shell程序。在大多数Linux发行版中,默认的登录shell是Bash。