共享对象上的setuid位

时间:2018-12-15 18:51:06

标签: c shared-objects setuid

我知道要加载.so,必须设置e'x'ecute位。但是,我想知道+ s(setuid)位对.so有什么影响?  如果主程序未设置“ setuid”,但是加载的.so是setuid,是否会更改uid?我发现没有,但是很高兴得到一些解释。

$ cat a.c 
# include <stdio.h>


extern void func();


void main()
{

    func();
}
$ cat b.c 
# include <stdio.h>
# include <unistd.h>


void func()
{
    printf("UID %d",geteuid());
}


gcc --shared -o libb.so ./b.c
sudo chown root: libb.so ; sudo chmod +s ./libb.so
gcc a.c  -L. -Wl,-R. -lb

没有任何区别(就像.so中的setuid被忽略一样)。

0 个答案:

没有答案