SETREUID(2)

NOM
setreuid, setregid - Fixer les UID et GID effectifs et/ou réels

SYNOPSIS
#include <sys/types.h>
#include <unistd.h>

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :

setreuid(), setregid() : _BSD_SOURCE || _XOPEN_SOURCE >= 500

DESCRIPTION
setreuid() fixe les ID d'utilisateur effectif et réel du processus appelant. Fournir une valeur -1 pour l'un des arguments demande au système de ne pas modifier l'ID correspondant Les processus non privilégiés peuvent seulement fixer leur UID effectif à la valeur de l'UID réel, de l'UID effectif ou de l'UID sauvé. POSIX : il n'est pas spécifié si les processus non privilégiés peuvent fixer l'UID réel à la valeur de l'UID réel, de l'UID effectif ou du Set-UID sauvé. Linux : les utilisateurs non privilégiés peuvent seulement fixer l'UID réel à la valeur de l'UID réel ou de l'UID effectif. Linux : si l'UID réel est changé, ou si l'UID effectif est rempli avec une valeur différente de l'UID réel précédent, le Set-UID sauvé sera également rempli avec la valeur du nouvel UID effectif. De manière analogue, setregid() fixe les ID de groupe du processus appelant, et toutes les remarques précédentes s'appliquent, en remplaçant GID par UID.

VALEUR RENVOYÉE
En cas de réussite, zéro est renvoyé, sinon -1 est renvoyé et errno contient le code d'erreur.

ERREURS

EPERM
    Le processus appelant n'est pas privilégié (sous Linux : n'a pas la capacité CAP_SETUID dans le cas de setreuid(), ou la capacité CAP_SETGID dans le cas de setregid()), des modifications ont été demandées autres que (i) l'échange de l'UID (resp. GID) effectif avec l'UID (GID) réel, (ii) la copie d'un UID (GID) dans un autre, ou (iii) le remplissage de l'UID (GID) effectif avec la valeur de l'UID (GID) sauvé.

CONFORMITÉ
POSIX.1-2001, BSD 4.3 (les fonctions setreuid() et setregid() sont apparues dans BSD 4.2).

NOTES
Définir l'UID (GID) effectif avec la valeur de l'UID (GID) sauvé est possible depuis Linux 1.1.37 (1.1.38).

VOIR AUSSI
getgid(2), getuid(2), seteuid(2), setgid(2), setresuid(2), setuid(2), capabilities(7)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 4 juin 2001 et révisée le 23 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 setreuid ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.