如果您强制存在多个具有相同用户名的用户,则将存在多个/etc/{shadow,passwd}
具有相同名称的条目:
$ cat /etc/passwd
...
a:x:1001:1002::/home/a:/bin/bash
a:x:1002:1003::/home/b:/bin/bash
# cat /etc/shadow
a:...:17702:0:99999:7:::
a:...:17702:0:99999:7:::
如果您尝试以该用户身份登录,则将以第一个匹配项登录。
$ ssh a@<host>
Password:
$ id
uid=1001(a) gid=1002(a) groups=1002(a)
$ pwd
/home/a
无法以相同的名称作为第二个用户登录。
请注意,Linux通过uid而不是用户名来跟踪用户。
但是,可以使两个不同的用户名成为同一用户ID。考虑不同版本的/etc/passwd
:
$ cat /etc/passwd
...
a:x:1001:1002::/home/a:/bin/bash
b:x:1001:1002::/home/b:/bin/bash
请注意,对于用户名a
和b
,第三列均为1001-这是uid /用户ID。现在,如果用户a
或用户b
登录(即使使用不同的密码),它们都将是“用户1001”,并a
从OS的角度显示为用户。同样,第一个匹配的条目也是返回的条目(在大多数情况下):
$ ssh a@host
Password: <a's password>
$ id
uid=1001(a) gid=1002(a) groups=1002(a)
$ ssh b@host
Password: <b's password>
$ id
uid=1001(a) gid=1002(a) groups=1002(a)
这两个a
和b
的UID 1001
,将有机会获得可用的UID资源1001
。