/etc/shadow
包含用户名,但不包含 uid。是否有特定的原因,为什么char *
选择字段而不是整数?
对于直接的用户名->密码检查,这可能会更快,但对于/etc/passwd
每个用户的字符串比较的关系似乎有点昂贵。
我想知道这个决定背后的理由。
答案1
.中可能有多个用户具有相同的 uid(但名称、主目录、shell 等不同)/etc/passwd
。这就是当前的做法 - IIRC 即使在今天,BSD 上也有一个toor
“备用根”帐户。
如果/etc/shadow
密码按 uid 而不是用户名进行索引,那么/etc/passwd
每个密码对应于哪个条目?