Linux GID 和组

Linux GID 和组

在 Linux 系统上,/etc/passwd 文件包含每个用户的 UID 和 GID。GID 表示用户主要组的 ID。

但是我们也可以使用 /etc/group 文件为用户设置附加组。

对于一个用户来说,主要组和附加组之间有区别吗?

我们来看两个例子:

  • 示例 1:

/etc/密码:

test:x:1000:151:test,,,:/home/test:/bin/bash

/etc/组

group1:x:151:
group2:x:152:test
group3:x:153:

在这个例子中,test 是 group1(作为主组,因为他的 gid 是 151)和 group2 的成员。

  • 示例 2:

/etc/密码:

test:x:1000:152:test,,,:/home/test:/bin/bash

/etc/组

group1:x:151:test
group2:x:152:
group3:x:153:

在这个例子中,test 是 group1 和 group2 的成员(作为主组,因为他的 gid 是 152)。

这两个示例的有效用户权限有区别吗?

谢谢

答案1

检查使用调用进程的真实 UID 和 GID,而不是像实际尝试对文件执行操作(例如 open(2))时那样使用有效 ID。同样,对于 root 用户,检查使用允许的功能集而不是有效功能集;对于非 root 用户,检查使用空的功能集。

用户的主要组和附加组之间是否有区别

是的,如果 shell 启动时的有效用户(组)id 不等于实际用户(组)id,并且未提供 -p 选项,则不会读取任何启动文件,不会从环境中继承 shell 函数,如果 SHELLOPTS、BASHOPTS、CDPATH 和 GLOBIGNORE 变量出现在环境中,则它们将被忽略,并且有效用户 id 设置为实际用户 id。如果在调用时提供了 -p 选项,则启动行为相同,但不会重置有效用户 id。

这两个示例的有效用户权限有区别吗?

是的,

参考:https://linux.die.net/man/2/accesshttps://linux.die.net/man/1/bash

相关内容