`RUID`、`EUID` 和 `setuid 位`

`RUID`、`EUID` 和 `setuid 位`

我正在尝试理解RUIDEUID内容setuid bit。以下是我对这个主题的疑问:

  1. 在里面如何启动(或查找)具有不同于 EUID 的 RUID 的进程?Gilles 对此问题的回答是:

    只有 setuid 可执行文件才会以设置为可执行文件所有者的有效 UID 开始,而实际 UID 仍然是调用进程的实际 UID

    这是什么意思the invoking process?如果我是对的,那么例如the invoking process上面提到的 id = 1000 的 Bill 用户运行的 passwd 命令就只是 Bill 用户吗?

  2. 我是否正确?当我们对可执行文件内的文件执行某些操作(例如,写入该文件)时,系统会通过检查EUID该文件的权限来检查是否允许执行该操作?

    例如,我们有一个可执行文件abcsetuid bit未设置),它使用权限将一些数据写入1.txt文件-rw-r--r--。Bill 用户(UID=1000)运行abc。现在因为abcEUID=1000(未setuid bit设置)并且1.txt权限是-rw-r--r--写入操作被系统拒绝,因为 EUID=1000!=0?

答案1

1) 它说是the invoking process因为您的示例中的 passwd 命令是由 shell (bash、csh 等) 或使用您的 ID 运行的程序启动的。

2) 是的,你说得对。权限架构根据进程有效 ID 进行检查。

相关内容