/etc/passwd 文件第 5 列中的“,,,”是什么意思?

/etc/passwd 文件第 5 列中的“,,,”是什么意思?

/etc/passwd 文件中有 7 个字段:用户名、密码、用户 ID (UID)、组 ID (GID)、用户 ID 信息、主目录、命令/shell。

我的 /etc/passwd 中的部分行:

avahi:x:105:110:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:106:46:usbmux daemon,,,:/home/usbmux:/bin/false
postgres:x:110:120:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash

第5列格式相同,很多,,这里是什么,意思?举个例子PostgreSQL administrator,,,是什么,,,意思PostgreSQL administrator,,,

答案1

您已经部分回答了自己的问题,可能没有意识到您这样做了:)线索隐藏在字段列表和您提供的 /etc/passwd 的摘录中。看看 passwd 文件中的字段是如何用 分隔的:?其中的逗号是用户 ID 信息字段的一部分,包括以下数据:全名、房间号、工作电话、家庭电话、其他。

如果您查看添加用户的过程,您会清楚地看到这一点。在这里,请看这个(取自基于 Debian 的系统):

root#添加用户测试
添加用户“test”...
添加新组“测试”(1003)...
添加新用户“test”(1002)和组“test”...
创建主目录“/home/test”...
从“/etc/skel”复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:密码更新成功
更改用户信息进行测试
输入新值,或按 ENTER 键获取默认值
    全名[]:测试名称
    【房间号】:302
    工作电话【】:1234567890
    家庭电话【】:1234567891
    其他[]:这只是一条评论
信息正确吗? [是/否] 是
root # grep 测试 /etc/passwd
test:x:1002:1003:测试名称,302,1234567890,1234567891,这只是一个注释:/home/test:/bin/bash

在上面您可以看到我提供的信息以及它存储在 /etc/passwd 中的位置。没有明显的逗号。

然而,我不记得曾经见过一个系统填满了这些字段。大多数管理员在大多数情况下可能会将这些附加信息留空,也许全名除外。

答案2

第 5 个字段有时称为“GECOS”字段(它代表“通用电气综合操作系统”),通常用于记录有关用户的附加信息 - 真实姓名、建筑物或房间号、电话号码以及任何其他联系信息(传真、寻呼机号码等)。这些子字段以逗号分隔。在您的 passwd 文件中,逗号仅表示未使用的字段。

我曾经使用过的大多数系统,包括 FreeBSD、Solaris 和一些 Linux,都只是输入真实的用户名,不包含任何其他信息,也不包含空子字段。

答案3

这只是一条评论,所以您不必担心。

info passwd

文件的每一行描述一个用户,并包含七个以冒号分隔的字段:

          name:password:UID:GID:**GECOS**:directory:shell

字段如下:

通用电气公司

该字段(有时称为“注释字段”)是可选的,仅用于提供信息。通常,它包含完整的用户名。某些程序(例如,finger(1))显示该字段中的信息。

GECOS代表“通用电气综合操作系统”,在GE的大型系统部门出售给霍尼韦尔后更名为GCOS。 Dennis Ritchie 报告说:“有时我们将打印机输出或批处理作业发送到 GCOS 机器。密码文件中的 gcos 字段是存储 $IDENTcard 信息的地方。不太优雅。”

答案4

文件的每一行描述一个用户,并包含七个以冒号分隔的字段:

      name:password:UID:GID:**GECOS**:directory:shell

字段如下:

通用电气公司

该字段(有时称为“注释字段”)是可选的,仅用于提供信息。通常,它包含完整的用户名。某些程序(例如,finger(1))显示该字段中的信息。

GECOS代表“通用电气综合操作系统”,在GE的大型系统部门出售给霍尼韦尔后更名为GCOS。 Dennis Ritchie 报告说:“有时我们将打印机输出或批处理作业发送到 GCOS 机器。密码文件中的 gcos 字段是存储 $IDENTcard 信息的地方。不太优雅。”

相关内容