Показать полную графическую версию : непонятка с suid файлом
почему не получаю рута?
тестю у себя на компе так что все законно)
[Krist_ALL@localhost tmp]$ ls -l
итого 4
-rwsrwsrwx. 1 root root 14 Ноя 3 05:42 megasuid
[Krist_ALL@localhost tmp]$ cat megasuid
echo 123;
sh
[Krist_ALL@localhost tmp]$ ./megasuid
123
sh-4.1$
Эффективный UID (EUID) при использовании suid не наследуется дочерним процессом. Наследуется реальный UID, то есть пользователя, от которого запускалась suid программа.
[Krist_ALL@localhost tmp]$ cat megasuid
echo 123;
id
touch /home/Krist_ALL/tmp/fuck
[Krist_ALL@localhost tmp]$ ./megasuid
123
uid=500(Krist_ALL) gid=500(Krist_ALL) группы=500(Krist_ALL)
[Krist_ALL@localhost tmp]$ ls -l
итого 4
-rw-rw-r--. 1 Krist_ALL Krist_ALL 0 Ноя 3 10:02 fuck
-rwxrwxrwx. 1 root root 45 Ноя 3 10:01 megasuid
[Krist_ALL@localhost tmp]$
ну я никак не пойму в чем дело. подскажите плз.
Что непонятно? Я же говорил,Эффективный UID (EUID) при использовании suid не наследуется дочерним процессом. »
id, touch - дочерние процессы вашего megasuid, наследуют реальный (ваш) UID.
Вот рабочий пример того же touch c suid:
[vadim@vadblm ~]$ cat suidfilecreate.c
#include <stdio.h>
int main(void)
{
FILE * myfile;
myfile = fopen("some.txt","w");
fclose(myfile);
return 0;
}
[vadim@vadblm ~]$ gcc -Wall suidfilecreate.c -o suidfilecreate
[vadim@vadblm ~]$ ./suidfilecreate
[vadim@vadblm ~]$ ls -l some.txt
-rw-r--r-- 1 vadim users 0 Ноя 3 21:16 some.txt
[vadim@vadblm ~]$ rm some.txt
[vadim@vadblm ~]$ sudo chown root suidfilecreate
[vadim@vadblm ~]$ sudo chmod ug+s suidfilecreate
[vadim@vadblm ~]$ ls -l suidfilecreate
-rwsr-sr-x 1 root users 4585 Ноя 3 21:16 suidfilecreate
[vadim@vadblm ~]$ ./suidfilecreate
[vadim@vadblm ~]$ ls -l some.txt
-rw-r--r-- 1 root users 0 Ноя 3 21:18 some.txt
Простите, что поленился проверку существования файла влепить. :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.