创建一个 ruser 和 user 不同的进程

创建一个 ruser 和 user 不同的进程

有人能帮忙找到一种方法来创建一个ruseruser不同的进程吗?目前,我使用了行sudo su david -c ./test.pl,然后当我输入以下行来获取user和时ruser

% ps -eo pid,user,ruser,fname,pcpu,nice,stime,time | grep test.pl
10322 david david test.pl 12.4 20 13:37:00 01:38

user仍然ruser相同。我需要创建一个类似以下示例的流程:

% ps -o user,ruser,comm -p 59515
...
USER    RUSER COMMAND
root csrethab xscreensaver 

有什么想法吗?

答案1

不要运行sudo su david该进程,而是更改程序的模式以允许 setuid:

chmod u+s /path/to/program(这必须以允许 chmod 程序的用户身份执行,例如 root)

然后,直接运行该程序而不使用 sudo。它将具有有效用户 david,但 ruser 将是你。

答案2

差异非常小,主要与 suid 进程等有关。

例如,passwd 之类的东西,作为非特权用户,您有权修改只有 uid 为 0 的文件。因此,您的有效用户或user将是 root,而您的ruser实际用户将是 david。

因此对于具有 setuid root 的进程(即 passwd),您将会有一个区别。

通过将文件设置为与正在运行的用户不同的用户,您应该能够看到差异。

相关内容