我有一个进程当前正在使用pid,$PID运行,并由而不是root 用户foo拥有。我想将此过程的所有权转移给另一个用户bar,它也是而不是根

是否有一个Shell命令可以更改进程的所有者?我正在考虑chown,但对于看起来像这样的过程。
chownproc [option] PID
This questionthis question是相似的,但不是我要寻找的内容,而且chown手册页没有提到任何有关进程的信息,只是文件。

如果没有,是否有没有完成或无法执行此操作的原因?

最佳答案

您无法做到这一点,没有这样的系统调用。但是,根据您希望如何影响该过程,如果该过程对您的系统不是至关重要的,则可以尝试一些破解。

(gdb) attach process_id
(gdb) call putenv ("UID=1234")
(gdb) call putenv ("EUID=1234")
(gdb) call putenv ("GID=1234")
(gdb) detach

请注意,这将不起作用:
(gdb) call setuid(1234)

这并不能真正回答您的问题(更改正在运行的进程的所有者),但是考虑到您可能希望更改所有者以影响有关该进程的某些内容,也许是此帮助。

请记住,这很可能破坏您的流程。

(基于此:
Is there a way to change another process's environment variables?)

关于linux - 更改当前正在运行的进程的所有者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37401774/

10-14 23:54