更改所有正在运行的进程的用户ID而不停止它们

时间:2015-04-14 18:06:11

标签: unix process permissions

我目前所有的进程都在我的服务器上以user1 id运行。现在我们有了一个新用户user2,我们希望user1运行的所有流程都由user2运行。这是为了保持一致,因为所有其他主机使用user2我应该遵循什么应该做的事情必须做什么?请注意,user1user2都具有root权限。当前从user1运行的进程数几乎是服务器上运行的所有进程的一半。

1 个答案:

答案 0 :(得分:1)

我不相信这是可能的。进程可以调用setuid()本身,但尝试在正在运行的进程上更改用户身份可能会产生灾难性的影响:需要某些权限的进程突然失去它们导致异常,或者进程不具备某些权限(而且写得不好)在获得它们时会对系统造成损害。来自进程的历史日志数据可能不再有意义,并且如果进程具有与其用户名(例如其主目录中的文件)相关的任何类型的高速缓存,或者高速缓存可以在没有进程的情况下变为无效的特权。任何了解这一点的方式。

真实的'这样做的方法是以新用户身份重新启动进程。