任何人都可以请帮忙find一种方法来创build一个ruser和user是不同的过程? 目前,我使用sudo su david -c ./test.pl这行,然后当我input下面一行来获取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仍然是一样的。 我需要创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,你将有一个区别。
您应该能够看到一个区别,通过将文件设置为与正在运行的用户不同的用户。