Linux kernel linux内核中的哪里实现了setuid二进制文件的处理?

Linux kernel linux内核中的哪里实现了setuid二进制文件的处理?,linux-kernel,Linux Kernel,当setuid二进制文件是exec'ed时,我试图找到负责更改进程的用户和/或组id的代码。这在fs/exec.c中的prepare\u binprm()中实现: /*是否设置uid*/ if(模式和S_ISUID){ bprm->per_clear |=SETID上的per_clear_; bprm->cred->euid=inode->i\u uid; } (您只需要知道。)uid/guid通常存储在文件的inode中并从中读取。因此,您应该研究底层文件系统代码。这将被读取并填充到进程的t

当setuid二进制文件是
exec
'ed时,我试图找到负责更改进程的用户和/或组id的代码。

这在
fs/exec.c
中的
prepare\u binprm()
中实现:

/*是否设置uid*/
if(模式和S_ISUID){
bprm->per_clear |=SETID上的per_clear_;
bprm->cred->euid=inode->i\u uid;
}

(您只需要知道。)

uid/guid通常存储在文件的inode中并从中读取。因此,您应该研究底层文件系统代码。这将被读取并填充到进程的task_结构中。