我有一个进程当前正在使用pid,$PID
运行,并由而不是root 用户foo
拥有。我想将此过程的所有权转移给另一个用户bar
,它也是而不是根。
是否有一个Shell命令可以更改进程的所有者?我正在考虑chown
,但对于看起来像这样的过程。chownproc [option] PID
This question和this 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/