Войти

Показать полную графическую версию : непонятка с suid файлом


tiktak
03-11-2010, 16:20
почему не получаю рута?
тестю у себя на компе так что все законно)

[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$

vadblm
03-11-2010, 17:31
Эффективный UID (EUID) при использовании suid не наследуется дочерним процессом. Наследуется реальный UID, то есть пользователя, от которого запускалась suid программа.

tiktak
03-11-2010, 18:03
[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]$


ну я никак не пойму в чем дело. подскажите плз.

vadblm
03-11-2010, 22:29
Что непонятно? Я же говорил,Эффективный 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