python |在不影响主线程的情况下启动将模拟另一个 uid 的新线程

python | start new thread that will impersonate another uid without affecting main thread

我要创建一个新线程,它将模拟另一个 uid,执行任务并完成,而我的主线程将始终保持原始 uid。

使用

可以轻松实现模拟
os.setuid(self.impersonation_uid)

但是我如何确保它不会从主线程更改我的原始 uid?

谢谢

线程不能有单独的用户ID;只有进程可以。内核用于进程的数据结构有一个用户 ID 字段,但线程没有 - 所以,这是一个架构限制。

进程由task_struct, which has a cred field, pointing to a cred结构定义,包括uid、gid等

线程由 thread_info 定义,它没有指向用户凭据的任何内容。