passwd GECOS 字段中的 & 符号

passwd GECOS 字段中的 & 符号

当扩展时/etc/passwd GECOS领域要获取用户的全名,我们应该仅扩展第一个 & 符号(&字符),还是所有 & 符号?

在具有逗号 ( ) 分隔子字段的 GECOS 字段中,,与符号应该仅在第一个子字段(即用户的全名)还是在所有子字段中展开?

如果 Unix 用户名包含大写字母,我们应该在&扩展中保留它们,还是应该只将用户名的第一个字母大写,其余字母小写?

答案1

  • & 符号应该仅有的被扩展在第一的逗号分隔的子字段(即所谓的“全名”或“真实姓名”子字段)。如果 GECOS 字段中没有逗号,则将整个字段视为真实姓名。
  • 任何和所有 & 符号都会被扩展,而不仅仅是第一个。
  • 如果用户名的第一个字符是 ASCII 小写字母,则该字母在 & 符号扩展中为大写。否则它会保持原样。除了第一个字符之外,不会对字符进行大小写转换。

该信息事实上的权威来源是sendmail服务器和finger客户端实现。 BSD 和 Solaris 的实现都是开源的,而且它们似乎都同意上述规则。

GECOS领域不再是该字段的最新名称。更准确地说,它应该被称为手指场因为在几乎所有系统上,逗号分隔子字段的预期布局都来自 Finger。

相关内容