/etc/passwd:记录了Linux上所有的账号。
/etc/shadow:记录了账户对应的密码。
/etc/group:记录了所有的组。
1、/etc/passwd:记录了Linux上所有的账号。
cat -n /etc/passwd:查看passwd文件,每一行都是一个用户。
2、以 user1:x:1001:1001::/home/user1:/bin/bash 为例每个字段所对应的含义。
user1:用户名。
x:早期这个部分放的是用户登入密码,现在密码放在 /etc/shadow 中了。
1001:UID,0表示系统管理员(root)。1-999保留给系统使用的 ID。1000以上给一般 使用者。
1001:GID,0 表示系统管理员(root)。1-999保留给系统使用的 ID。1000以上给一般 使用者。
GID 后面的:号是空白,这里可以写入使用者信息说明。
/home/user1:用户的家目录。用户登入时所处的位置。
/bin/bash:用户在登入系统时是否可以使用shell,如果不能使用shell会显示 /sbin/nologin。
3、id 命令查看当前用户的 UID 和 GID
红色下划线部分:root 的 UID 和 GID 都是 0
黄色下划线部分:环境变量
切换到 user1 普通用户查看它的 UID 和 GID。普通用户都时大于1000。
4、Linux 系统以 UID 来寻找对应的用户名。用户名和组名是给人看的,系统只认UID 和 GID。
tmp 目录下的 text.txt ,它的拥有者是 user1。
通过 /etc/passwd 文件可以知道 user1 用户的 UID 是 1001。
把 user1 用户的 UID 从 1001 改为 1010,保存文件。
重新 ll 查看详细信息,拥有者从 user1 变为 1001。这是因为 test.txt 文件的 UID 原来是1001,系统通过 1001 这个 UID 到 /etc/passwd 文件下查找对应 1001 UID 的用户,再显示对应的用户名。由于,更改了 /etc/passwd 文件的 UID。系统找不到 1001 的用户 UID,所以显示不出对应的用户名,只能显示文件的 1001 UID。
再次进入 /etc/passwd 文件,把 torres 用户的 UID 由 1000 改为 1001。保存退出。
test.txt 文件的拥有者改为 torres。因为 torres 用户的 UID 和 test.txt 文件的 UID 相匹配,都是1001。所以,由此可见。系统是把文件 UID 和用户 UID 进行匹配的,通过 UID 来判断归属。














网友评论