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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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 ⟨⟩.