更改当前正在运行的流程的所有者

时间:2016-05-23 22:49:47

标签: linux shell process centos6

我的流程目前正在使用 pid $PID运行,并由用户 foo拥有,不是根即可。我想将此流程的所有权转移给另一个用户 bar,该用户非root

是否有更改进程所有者的shell命令?我想到的是chown,但对于看似类似的过程。

chownproc [option] PID

This questionthis question相似,但不完全是我正在寻找的内容,而chown手册页并没有说明任何有关流程,只有文件的内容。< / p>

如果没有,有没有理由说这还没有完成或不可能?

1 个答案:

答案 0 :(得分:2)

你不能这样做,没有这样的系统调用。但是,根据您希望如何影响流程,如果流程对您的系统不重要,您可以尝试一些黑客攻击。

(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?