Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       setresuid, setresgid - Définir les UID ou les GID réels, effectifs et sauvés

SYNOPSIS

       #define _GNU_SOURCE /* Consultez feature_test_macros(7) */
       #include <unistd.h>

       int setresuid(uid_t ruid, uid_t euid, uid_t suid);
       int setresgid(gid_t rgid, gid_t egid, gid_t sgid);

DESCRIPTION

       setresuid() définit les UID réel, effectif et (effectif) sauvé du processus appelant.

       An  unprivileged  process  may change its real UID, effective UID, and saved set-user-ID, each to one of:
       the current real UID, the current effective UID or the current saved set-user-ID.

       A privileged process (on Linux, one having the CAP_SETUID capability) may set  its  real  UID,  effective
       UID, and saved set-user-ID to arbitrary values.

       Si l'un des paramètres vaut -1, la valeur correspondante n'est pas modifiée.

       Indépendamment  des changements concernant les UID réel, effectif et sauvés, le fsuid est toujours défini
       à la même valeur que l'UID effectif.

       De manière analogue, setresgid() définit les GID réel,  effectif  et  sauvé  du  processus  appelant  (et
       définit  toujours  le  fsgid  à  la même valeur que le GID effectif) avec les mêmes restrictions pour les
       processus n'ayant aucun GID nul.

VALEUR RENVOYÉE

       En cas de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno reçoit une valeur adéquate.

       Note : dans certains cas, setresuid() peut échouer alors même que l'UID de  l'appelant  est  0 ;  ne  pas
       vérifier  la valeur renvoyée par setresuid() pour détecter un échec est une grave erreur qui compromet la
       sécurité du système.

ERREURS

       EAGAIN L'appel a changé l'identifiant (UID) réel de l'appelant (c'est à dire que ruid ne correspond pas à
              l'UID réel de l'appelant), mais une erreur  temporaire  est  survenue  lors  de  l'allocation  des
              structures de données du noyau nécessaires à l'opération.

       EAGAIN ruid  ne  correspond  pas  à l'UID réel de l'appelant et suite à cet appel, le nombre de processus
              appartenant à l'utilisateur dont l'identifiant réel est ruid a dépassé  la  limite  de  ressources
              RLIMIT_NPROC  de  l'appelant.  A  partir  de  Linux  3.1,  cette  erreur  ne peut plus se produire
              (néanmoins, les applications sérieuses doivent vérifier que  l'erreur  ne  s'est  pas  produite) ;
              consultez la description de EAGAIN dans execve(2).

       EINVAL Au  moins  un  des  identifiants  utilisateur ou groupe cible n'est pas valide dans espace de noms
              utilisateur.

       EPERM  The calling process is not  privileged  (did  not  have  the  necessary  capability  in  its  user
              namespace)   and  tried  to  change the IDs to values that are not permitted. For setresuid(), the
              necessary capability is CAP_SETUID; for setresgid(), it is CAP_SETGID.

VERSIONS

       Ces appels sont disponibles sous Linux depuis la version 2.1.44.

CONFORMITÉ

       Ces appels ne sont pas standards ; ils apparaissent également sur HP-UX et certains BSD.

NOTES

       Sous HP-UX et FreeBSD, le prototype se trouve dans <unistd.h>. Sous Linux, le prototype est fourni par la
       glibc depuis la version 2.3.2.

       Les appels système setresuid() et setresgid()  originaux  de  Linux  ne  géraient  que  des  identifiants
       d'utilisateur et de groupe sur 16 bits. En conséquence, Linux 2.4 a ajouté setresuid32() et setresgid32()
       qui prennent en charge des identifiants 32 bits. Les fonctions setresuid() et setresgid() de la glibc qui
       les encapsulent gèrent de manière transparente ces différences entre noyaux.

   différences entre bibliothèque C et noyau
       At  the kernel level, user IDs and group IDs are a per-thread attribute. However, POSIX requires that all
       threads in a process share the same credentials. The NPTL  threading  implementation  handles  the  POSIX
       requirements  by  providing  wrapper  functions for the various system calls that change process UIDs and
       GIDs. These wrapper functions (including those for setresuid()  and setresgid())  employ  a  signal-based
       technique  to  ensure  that  when one thread changes credentials, all of the other threads in the process
       also change their credentials. For details, see nptl(7).

VOIR AUSSI

       getresuid(2),   getuid(2),   setfsgid(2),   setfsuid(2),   setreuid(2),    setuid(2),    capabilities(7),
       credentials(7), user_namespaces(7)

COLOPHON

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

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org>,    Cédric    Boutillier    <cedric.boutillier@gmail.com>    et   Frédéric   Hantrais
       <fhantrais@gmail.com>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous  découvrez  un  bogue  dans la traduction de cette page de manuel, veuillez envoyer un message à
       debian-l10n-french@lists.debian.org.

Linux                                           15 septembre 2017                                   SETRESUID(2)