Provided by: manpages-fr-dev_4.23.1-1_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

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

STANDARDS

       Aucun.

HISTORIQUE

       Linux 2.1.44, glibc 2.3.2. HP-UX, FreeBSD.

       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.

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