Provided by: manpages-fr-dev_4.21.0-2_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⟩.