b.UID-ul unui proces
^#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.