Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   непонятка с suid файлом (http://forum.oszone.net/showthread.php?t=190175)

tiktak 03-11-2010 16:20 1533961

непонятка с 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$

vadblm 03-11-2010 17:31 1534002

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

tiktak 03-11-2010 18:03 1534020

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

Что непонятно? Я же говорил,
Цитата:

Цитата vadblm
Эффективный 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

Простите, что поленился проверку существования файла влепить. :)


Время: 00:08.

Время: 00:08.
© OSzone.net 2001-