LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 284|回复: 0

使用者标识符:UID 与 GID

[复制链接]
发表于 2024-1-20 23:39:24 | 显示全部楼层 |阅读模式
登录使用的账户,但是账户与 ID 对应在 /etc/passwd 中,Linux 主机针对 ID 进行识别

比如下载过 tarball 类型的文件,解压之后的文件中,文件拥有者的字段可能显示「不明的数字」,这说明在很多场景下几乎上都是用 ID 来识别的

在第 5 章中提到过,每一个文件都具有「拥有人与拥有群组」的属性,所以每个使用者至少会取得两个 ID:

UID:user id
GID:group id
文件也是通过 UID 与 GID 来判别他的拥有者与群组的,当有要显示文件属性的需求时,系统会依据 /etc/passwd 与 /etc/group 的内容,找到 UID/GID 对应的账户与组名再显示出来。

可以通过一个小测试来验证,使用 root 身份 vim /etc/passwd 然后将一般身份的使用者 ID 随便更改一个号码,然后再到这个一般身份的目录下查看该账户拥有的文件,就会发现该文件的拥有人变成了「数字」

# 确定有 mrcode 账户
[root@study ~]# id mrcode
uid=1000(mrcode) gid=1000(mrcode) groups=1000(mrcode)

# 查看该文件的拥有者,显示是 mrcode
[root@study ~]# ll -d /home/mrcode/
drwx------. 16 mrcode mrcode 4096 Feb 18 13:34 /home/mrcode/

# 修改 mrcode 的 UID 1000 变成 2000
[root@study ~]# vim /etc/passwd
mrcode:x:2000:1000:mrcode:/home/mrcode:/bin/bash

# 再次查看文件的拥有者,从原先的 mrcode 变成了 1000.变成了数字
# 最后记得还原回来
[root@study ~]# ll -d /home/mrcode/
drwx------. 16 1000 mrcode 4096 Feb 18 13:34 /home/mrcode/


上面的例子仅说明 UID 与账户的对应性,在 LInux 下,不要随意锈钢系统上某些账户的 UID,否则可能导致某些程序无法进行。

如果上述操作,不修改回去的话,那么下次 mrcode 登录时就无法进入自己的家的目录,因为他的 UID 已经锈钢为 2000 了,但是他家目录(/home/mrcode) 却记录的是 1000,由于权限是 700,因此他讲无法进入元宝的家的目录

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表