当扩展时/etc/passwd
GECOS领域要获取用户的全名,我们应该仅扩展第一个 & 符号(&
字符),还是所有 & 符号?
在具有逗号 ( ) 分隔子字段的 GECOS 字段中,
,与符号应该仅在第一个子字段(即用户的全名)还是在所有子字段中展开?
如果 Unix 用户名包含大写字母,我们应该在&
扩展中保留它们,还是应该只将用户名的第一个字母大写,其余字母小写?
答案1
- & 符号应该仅有的被扩展在第一的逗号分隔的子字段(即所谓的“全名”或“真实姓名”子字段)。如果 GECOS 字段中没有逗号,则将整个字段视为真实姓名。
- 任何和所有 & 符号都会被扩展,而不仅仅是第一个。
- 如果用户名的第一个字符是 ASCII 小写字母,则该字母在 & 符号扩展中为大写。否则它会保持原样。除了第一个字符之外,不会对字符进行大小写转换。
该信息事实上的权威来源是sendmail
服务器和finger
客户端实现。 BSD 和 Solaris 的实现都是开源的,而且它们似乎都同意上述规则。
这GECOS领域不再是该字段的最新名称。更准确地说,它应该被称为手指场因为在几乎所有系统上,逗号分隔子字段的预期布局都来自 Finger。