1. NOM

seteuid, setegid - Définir les UID et GID effectifs

2. SYNOPSIS

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

int seteuid(uid_t euid);
int setegid(gid_t egid);

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

seteuid(), setegid() :
    _BSD_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600

3. DESCRIPTION

seteuid() définit l'UID effectif du processus appelant. Les processus non privilégiés peuvent uniquement définir leur UID effectif à la valeur de leur UID réel, de leur UID effectif ou de leur UID sauvé. Ceci fonctionne exactement de la même façon avec setegid() en raisonnant en terme de groupe (GID) au lieu d'utilisateur (UID).

4. VALEUR RENVOYÉE

S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en conséquence.

5. ERREURS

  • EPERM
        Le processus appelant n'est pas privilégié (sous Linux : n'a pas la capacité CAP_SETUID dans le cas de seteuid(), ou la capacité CAP_SETGID dans le cas de setegid()), et l'argument euid (respectivement egid) n'est pas l'UID (respectivement GID) réel, effectif ou sauvé.

6. CONFORMITÉ

BSD 4.3, POSIX.1-2001.

7. NOTES

Définir l'UID (GID) effectif à la valeur de l'UID (GID) sauvé est possible depuis Linux 1.1.37 (1.1.38). Sur un système UNIX inconnu, il faut vérifier la présence de la constante _POSIX_SAVED_IDS.

Sous libc4, libc5, et glibc 2.0, seteuid(euid) est équivalent à setreuid(-1, euid) et modifie ainsi l'UID sauvé. Sous glibc 2.1 et les versions suivantes, c'est équivalent à setresuid(-1, euid, -1) et ne modifie donc pas l'UID sauvé. Les mêmes remarques sont valables pour setegid(), à la différence que le changement d'implémentation de setregid(-1, egid) à setresgid(-1, egid, -1) est apparu dans glibc 2.2 ou 2.3 (en fonction de l'architecture matérielle). D'après POSIX.1, seteuid() (resp. setegid()) n'a pas besoin de permettre à euid (resp. egid) d'avoir la même valeur que l'identifiant d'utilisateur (resp. de groupe) effectif, et certaines implémentations ne le permettent effectivement pas.

8. VOIR AUSSI

9. COLOPHON

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

10. TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».