dwww Home | Manual pages | Find package

setresuid(2)                  System Calls Manual                 setresuid(2)

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 proces-
       sus 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  mo-
       difié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  effec-
       tif.

       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  setre-
       suid() 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 mo-
              difier ses ID de manière interdite. Pour setresuid(),  la  capa-
              cité  nécessaire est CAP_SETUID.Pour setresgid(), c'est CAP_SET-
              GID.

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 Li-
       nux, 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 trans-
       parente 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  fonc-
       tions  enveloppes  pour les différents appels système qui modifient des
       UID ou des GID. Ces fonctions enveloppe (dont celles autour  de  setre-
       suid() 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),  se-
       tuid(2), capabilities(7), credentials(7), user_namespaces(7)

TRADUCTION
       La  traduction française de cette page de manuel a été créée par Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.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.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.org>, David Prévot  <david@tilapin.org>,  Cédric  Boutillier  <ce-
       dric.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⟩.

Pages du manuel de Linux 6.03   4 décembre 2022                   setresuid(2)

Generated by dwww version 1.15 on Sat Jun 29 01:52:13 CEST 2024.