/etc/passwd 文件

用途

包含基本用户属性。

描述

/etc/passwd 文件包含基本用户属性。 这是一个 ASCII 文件,其中包含每个用户的条目。 每个条目都定义应用于用户的基本属性。 当您使用 mkuser 命令将用户添加到系统时,该命令将更新 /etc/passwd 文件。
注: 为了正确安装和更新系统软件,需要某些系统定义的组和用户名。 在替换此文件之前请务必小心,以确保未除去任何系统提供的组或用户。

/etc/passwd 文件中的条目具有以下格式:

名称 : 密码 : 用户ID : 主体组 : Gecos : 主目录 : Shell

条目中的属性用一个: (冒号) 分隔。 出于此原因,您不应在任何属性中使用: (冒号)。 有关属性定义为如下所示:

属性 定义
名称 指定该用户的登录名。 在命名用户方面存在一些限制。 请参阅 姆库特 命令以获取更多信息。
密码 包含一个 * (星号) ,指示无效密码或! (感叹号) 指示密码在 /etc/security/passwd 文件中。 在正常情况下,该字段包含!。 如果该字段具有 * ,并且需要密码才能进行用户认证,那么用户无法登录。
UserID 指定用户的唯一数字标识。 此标识将用于自主访问控制。 该值是唯一的十进制整数。
PrincipleGroup 指定用户的主体组标识。 这必须是用户数据库中某个组的数字标识或网络信息服务定义的组的数字标识。 该值是唯一的十进制整数。
gecos 指定关于系统不需要的用户的一般信息,例如办公室或电话号码。 该值是一个字符串。 盖科斯 字段中不能包含冒号。
HomeDirectory 指定该用户的主目录的完整路径名。 如果该用户没有已定义的主目录,那么将使用该访客用户的主目录。 该值是一个字符串。
Shell 指定在用户调用 登录 命令或 命令之后执行的初始程序或 shell。 如果用户没有定义的 shell ,那么将使用 /usr/bin/sh, 系统 shell。 该值是一个字符串,可能包含要传递至初始程序的参数。

用户可以在其他系统文件中具有其他属性。 请参阅 "文件" 部分以获取更多信息。

更改用户文件

您应该通过为此目的定义的系统命令和子例程来访问用户数据库文件。 在将来的发行版中,可能不支持通过其他命令或子例程进行访问。 使用以下命令来访问用户数据库文件:

  • chfn
  • chsh
  • chuser
  • lsuser
  • mkuser
  • rmuser

mkuser 命令将新条目添加到 /etc/passwd 文件并填充 /usr/lib/security/mkuser.default 文件中定义的属性值。

密码 属性始终会初始化为 * (星号) ,这是无效密码。 您可以使用 密码普达德姆 命令来设置密码。 当密码更改时,一个! (感叹号) 添加到 /etc/passwd 文件中,指示加密密码位于 /etc/security/passwd 文件中。

使用 丘特 命令可更改除 密码之外的所有用户属性。 奇夫恩 命令和 奇什 命令会分别更改 盖科斯 属性和 Shell 属性。 要显示此文件中的所有属性,请使用 勒苏泽 命令。 要除去用户以及用户的所有属性,请使用 Rmuser 命令。

要在 /etc/passwd 文件中编写影响属性的程序,请使用相关信息部分中列出的子例程。

安全性

访问控制: 此文件应该向所有用户授予读 (r) 访问权,并仅向 root 用户和安全组成员授予写 (w) 访问权。

示例

  1. 显示以下项的无效密码的典型记录:smithguest以下内容:
    smith:*:100:100:8A-74(office):/home/smith:/usr/bin/sh
    guest:*:200:0::/home/guest:/usr/bin/sh  
    这些字段按以下顺序排列: 用户名,密码,用户标识,主组,常规 (gecos) 信息,主目录和初始程序 (登录 shell 程序)。 "密码" 字段中的 * (星号) 指示密码无效。 每个属性用一个: (冒号) 分隔。
  2. 如果密码为smith在上一个示例中,更改为有效密码,记录将更改为以下内容:
    smith:!:100:100:8A-74(office):/home/smith:/usr/bin/sh 
    那是什么? (感叹号) 指示加密密码存储在 /etc/security/passwd 文件中。

文件

描述
/etc/passwd 包含基本用户属性。
/usr/lib/security/mkuser.default 包含新用户的缺省属性。
/etc/group 包含组的基本属性。
/etc/security/group 包含组的扩展属性。
/etc/security/passwd 包含密码信息。
/etc/security/user 包含用户的扩展属性。
/etc/security/environ 包含用户的环境属性。
/etc/security/limits 包含用户进程资源限制。