2014-02-25 30 views
2

我的假设是真的,在Unix/Linux上,增加root访问权限的唯一方法是执行一个setuid根文件?Linux,GAIN root访问的唯一方法是执行一个setuid根文件?

换句话说,系统调用setuid()setgid()都是关于DROPPING权限的?

请注意,我的问题不是关于漏洞利用。

+0

是的,这就是为什么[setuid](http://en.wikipedia.org/wiki/Setuid)约为 –

+0

那么,也可以通过从根进程分叉来“获得”根访问权限。问题是任何你可以想像得到的过程都已经在给予你的进程控制权之前就已经放弃了root权限(认为是init),或者它本身是早先放弃特权的进程派生出来的(想想bash)。 – Damon

+0

通过GAIN我的意思是一个非根进程成为一个根进程。并不是根进程创建另一个根进程。 – SzG

回答

2

的确如此。非root进程(假设它运行非setuid程序)成为root的唯一方法是执行一个setuid程序。如果它正在运行一个set-uid root程序,那么它的有效uid是root,真正的uid是谁运行的。然后它可以做setuid(0),使其真实的uid 0.

相关问题