Provided by: manpages-fr-dev_4.19.0-7_all bug

NOM

       setresuid, setresgid - Définir les UID ou les GID réel, effectif et sauvé

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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 l'UID réel, effectif et (effectif) sauvé du processus appelant.

       Un  processus  non privilégié peut définir son UID réel, effectif ou sauvé, chacun étant :
       l'UID actuel, l'UID effectif actuel ou l'UID sauvé.

       Un processus privilégié (sous Linux, qui a la capacité CAP_SETUID)  peut  positionner  son
       UID réel, effectif ou sauvé à une valeur quelconque.

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

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

       De manière analogue, setresgid() définit le 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  est  définie
       pour préciser l'erreur.

       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  Le  processus  appelant  n'a pas de privilèges (n'a pas la capacité nécessaire dans
              son espace de noms utilisateur) et essaie de modifier ses ID de manière  interdite.
              Pour  setresuid(),  la  capacité  nécessaire est CAP_SETUID.Pour setresgid(), c'est
              CAP_SETGID.

VERSIONS

       Ces appels sont disponibles sous Linux depuis la version 2.1.44.

STANDARDS

       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 depuis la glibc 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
       Au  niveau  du noyau, les identifiants d'utilisateur et de groupe représentent un attribut
       par thread. Cependant, POSIX exige que tous les threads d'un processus partagent les mêmes
       droits. L'implémentation de threading de NPTL satisfait aux exigences de POSIX à l'aide de
       fonctions enveloppes pour les différents appels système qui modifient des UID ou des  GID.
       Ces  fonctions  enveloppe  (dont celles autour de setresuid() et de setresgid()) utilisent
       des techniques basées sur le signal  pour  s'assurer  que  lorsqu'un  thread  modifie  les
       droits,  tous les autres threads du processus le font également pour leur compte. Pour des
       détails, consultez nptl(7).

VOIR AUSSI

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

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>,  Frédéric  Hantrais  <fhantrais@gmail.com> et Jean-Philippe
       MENGUAL <jpmengual@debian.org>

       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⟩.