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
定义,它没有指向用户凭据的任何内容。
我要创建一个新线程,它将模拟另一个 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
定义,它没有指向用户凭据的任何内容。