linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)

你知道Linux中的UID和GID的含义吗

是不是大家看到UID(user id)和GID(group id),都会立马说不就是用户和用户组ID。

但是。

当我们登陆Linux系统时,输入自己的用户名和密码,这里其实Linux系统并不认识你的用户名(或者换一种说法,不是依赖于你的用户名来识别你),它只认识你的用户名所对应的ID号(一串数字)。

直白一点,用户名实际没有ruan用,仅是为了方便用户的记忆而已(对比域名和ip)。

如下图:

查看odysee用户UID和GID

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(1)

Linux系统将所有用户名称与ID的对应关系都存储在/etc/passwd文件中。

如下图:

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(2)

用户组名称和ID对应关系都存储在/etc/group文件中。

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(3)

1、 这里大家可能会问,既然Linux系统不认识用户名,文件是如何判别它的拥有者名称和群组名称的呢?

解:

每个文件都有自己的拥有者ID和组ID,当显示文件属性时,系统会根据/etc/passwd和 /etc/group文件中的内容,分别找到UID和GID对应的用户名和群组名,然后显示出来。

这里就类似于数据库中student表,拿着sno(学号)找对应的sname(姓名)。

如下图所示:

stat groovy.txt

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(4)

2、 做个小demo

实现让odysee用户无法进入自己的家目录

提示:修改重要配置文件请提前备份

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(5)

(1)修改odysee的UID

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(6)

(2)查看刚刚odysee的groovy.txt文件

是不是发现本来的用户名odysee变成了1000

前面我们已经说过了,每个文件都有自己的拥有者ID和组ID,当文件groovy拿着ID(1000)去/etc/passwd找自己的姓名时,发现没有和1000匹配的姓名(因为我们刚刚把它的UID改为了9527)。所以只能显示UID。

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(7)

(3) 从root切到odysee

下面居然提示没有权限。

还回不了自己的家了。

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(8)

ll home

drwx------ 3 1000 odysee 4096 May 22 11:04 odysee

是不是跟(2)一样的原理。

该目录只有UID为1000的用户可以进入,其余的(不限root)一切免进(g、o位没有权限,只有u位有rwx权限)。

linux中的uid和gid是什么呢(解析Linux中的UID和GID含义)(9)

总结:

关于UID和GID大家是不是有了一点点新的认识。

关于/etc/passwd文件中用户的UID别忘了改回去。

修改UID操作慎用!!!

感谢支持。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页