L'uid d'un processus est l'identification de l'utilisateur exécutant le processus. Le système utilise trois uid qui sont:
#include <unistd.h>
int setuid(uid_t uid);
int setgid(gid_t gid);
Fonctionnement:
si euid == 0 (euid de root) les trois uid sont positionnés à la valeur de uid
sinon si uid est égal à ruid ou suid alors euid devient uid. ruid et suid ne changent pas.
sinon rien! pas de changements.
Syntaxe identique pour setgid et gid.
La commande setreuid() permet de changer le propiétaire réel du processus, elle est utilisé pendant le login, seul le super utilisateur peut l'exécuter avec succès.