setuid 和 setgid 混淆

jkg*_*yti 6 setuid permissions

我试图完全掌握 setuid 和 setgid 的概念,但我不太确定权限实际上以何种方式提升。让我举个例子:

用户

userA (groups: userA groupA)
userB (groups: userB groupB GroupC)
Run Code Online (Sandbox Code Playgroud)

可执行

Permission owner group  filename
-rws-----x userA groupD file
-rwsrws--x userA groupD file2
Run Code Online (Sandbox Code Playgroud)

如果 userB 执行fileand file2,可执行文件将拥有什么组权限?什么我不能完全肯定,无论是的可执行涨势用户/组的权限调用者和文件所有者,或者如果权限是“替代”。

我知道这是一个愚蠢的例子,因为 setuid 和 setgid 通常用于调用“全能”应用程序,但我希望这个例子能够更好地实际概念化 setuid 和 setgid 的工作原理。

Nil*_*ils 3

setuid设置有效 uid euidsetgid设置有效 gid eid

在这两种情况下,调用者 uids 和 gids 都将保留在原处。因此,粗略地说,除了调用者 uid 和(活动)gid 之外,您还将获得该 uid/gid。

有些程序可以很好地区分这一点。

如果您登录系统,然后suroot,然后发出a,who am i您将看到您的“旧”帐户。

su是这些 suid 二进制文件之一,它将更改euid