b.UID-ul unui proces

Сделай свою wap-шпаргалку =) попробуй конструктор сайтов http://www.panweb.com/


Programul de mai jos demonstreazг apelul sistem setuid. Presupunem cг fi?ierul executabil produs prin compilarea programului are propietar pe "mauny" (identificatorul utilizator 8319), bitul sгu pentru setuid este activat ?i toюi utilizatorii au permisiunea sг-l execute. Оn plus, presupunem cг utilizatorii "mjb" (identificatorul utilizator 5088) ?i "maury" au оn proprietate fi?iere cu acelea?i nume ?i ambele fi?iere au setat dreptul de acces read-only.Apelurile sistem getuid ?i geteuid оntorc identificatorii real ?i efectiv ai procesului, 5088 ?i respectiv 8319 pentru tilizatorul "mjb". De aceea, procesul nu poate deschide fi?ierul "mjb", pentru cг utlizatorul efectiv (8319) nu are drept de citire a fi?ierului, dar poate deschide fi?ierul "maury".
^#include<fnctl.h>
^main()
{
^int uid, euid, fdmjb, fdmaury;
^ uid=getuid();
^ euid=geteuid();
^ printf("uid [procent]d euid [procent]d
", uid, euid);
^ fdmjb=open("mjb", O_RDONLY);
^ fdmaury=open("maury", O_RDONLY);
^printf("fdmjb [procent]D fdmaury [procent]d
", fdmjb, fdmaury);
^setuid(uid);
^printf("dupг setuid ([procent]d): uid [procent]d euid [procent]d
", uid, getuid(), geteuid());
^fdmjb=open("mjb", O_RDONLY);
^fdmaury=open("maury", O_RDONLY);
^printf("fdmjb [procent]d fdmaury [procent]d
", fdmjb, fdmaury);
^setuid(euid);
^printf("dupq setuid([procent]d):uid [procent]d euid [procent]d
", eiuid, getuid(), geteuid());
}
Dupг apelarea lui setuid pentru a schimba identificatorul efectiv al procesului оn identificatorul utilizator real ("mjb') a doua instrucюiune printf tipгre?te valorile 5088 ?i 5088, identificatorul utilizator al lui "mjb". Acum procesul poate deshide fi?ierul "mjb", pentru cг identificatorul sгu utilizator are acces de citire pentru fi?ier, dar procesul nu poate deschide fi?ierul "maury". Оn final, dupг apelarea lui setuid, pentru a schimba identificatorul utilizator efectiv оn valoarea salvatг de programi (8319), al treilea printf va tipгri din nou valorile 5088 ?i 8319.
Ultimul caz aratг cг procesul poate executa un program setuid ?i modifica identificatorul sгu utilizator efectiv cu identificatorul sгu utilizator real sau cel executat de setuid.