бит setuid для общего объекта - PullRequest
0 голосов
/ 15 декабря 2018

Я знаю, что для загрузки .so, бит e'x'ecute должен быть установлен.Тем не менее, мне интересно, как влияет бит + s (setuid) на .so?Если основная программа не настроена на «setuid», а загружаемый файл .so установлен, то изменяет ли 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

, которое не делает ничего другого (как-будто setuid в .so игнорируется).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...