创build一个ruser和用户不同的进程

任何人都可以请帮忙find一种方法来创build一个ruseruser是不同的过程? 目前,我使用sudo su david -c ./test.pl这行,然后当我input下面一行来获取userruser

 % 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 

userruser仍然是一样的。 我需要创build一个像下面的示例一样的过程:

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

有什么想法吗?

而不是做sudo su david来运行这个过程,改变程序的模式以允许setuid:

chmod u+s /path/to/program (这必须作为允许chmod程序的用户来完成,例如root)

然后只需运行程序,而不使用sudo。 它将有有效的用户大卫,但鲁瑟将是你。

这个差别很小,主要用于suid进程等。

例如,像passwd这样的非特权用户,你可以修改一个只有0的uid的文件。 所以你的有效用户或user将是根,而你的实际用户将是大卫。

所以对于一个拥有setuid根的进程,即。 passwd,你将有一个区别。

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