шпаргалка

b.UID-ul unui proces

[ Назад ]
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.

КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |