Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       setuid - Définir l'identifiant de l'utilisateur

SYNOPSIS

       #include <sys/types.h>
       #include <unistd.h>

       int setuid(uid_t uid);

DESCRIPTION

       setuid()  définit  l'UID  effectif du processus appelant. Si cet UID effectif est celui du
       superutilisateur, les UID réels et sauvés sont également définis.

       Sous  Linux  setuid()  est   implémenté   comme   le   spécifie   POSIX,   avec   l'option
       _POSIX_SAVED_IDS.  Ceci  permet  à un programme Set-UID (autre que root) d'abandonner tous
       ses privilèges, d'effectuer des tâches non privilégiées, et de retrouver son UID  effectif
       de manière sécurisée.

       Si  l'utilisateur  est  le  superutilisateur,  ou  si  le  programme est Set-UID root, des
       précautions particulières doivent être prises. La fonction setuid() vérifie l'UID effectif
       de  l'appelant  et si c'est le superutilisateur, tous les UID du processus sont mis à uid.
       Une fois ceci effectué, il est impossible au programme  de  retrouver  ses  privilèges  de
       superutilisateur.

       Ainsi  un  programme  Set-UID root désireux d'abandonner temporairement ses privilèges, en
       prenant l'identité d'un utilisateur ordinaire, puis de récupérer  ses  privilèges  par  la
       suite  ne  doit  pas  utiliser  setuid().  On  peut  accomplir  ceci  en utilisant l'appel
       seteuid(2).

VALEUR RENVOYÉE

       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno  en
       conséquence.

ERREURS

       EAGAIN uid  ne  correspond pas à l'UID courant et uid porterait le processus au-delà de sa
              limite RLIMIT_NPROC.

       EPERM  L'utilisateur n'est pas privilégié (sous Linux : n'a pas la capacité CAP_SETUID) et
              uid ne correspond ni à l'UID réel, ni au set-uid sauvé du processus.

CONFORMITÉ

       SVr4,  POSIX.1-2001.  Pas  tout  à  fait  compatible  avec  l'appel  système  BSD 4.4, qui
       positionne l'ensemble des ID réel, sauvé et effectif.

NOTES

       Linux dispose d'un concept d'UID de système de fichiers, qui est normalement égal à  l'UID
       effectif.  L'appel  setuid()  définit  également l'UID de système de fichiers du processus
       appelant. Consultez setfsuid(2).

       Si l'uid est différent de l'ancien UID  effectif,  le  processus  ne  pourra  pas  laisser
       d'image mémoire (core dump) sur le disque.

       L'appel  système  setuid()  original de Linux ne gérait que des identifiants d'utilisateur
       sur 16 bits. En conséquence, Linux 2.4  a  ajouté  setuid32()  qui  prend  en  charge  des
       identifiants  32 bits.  La  fonction  setuid() de la glibc qui l'encapsule gère de manière
       transparente ces différences entre noyaux.

VOIR AUSSI

       getuid(2), seteuid(2), setfsuid(2), setreuid(2), capabilities(7), credentials(7)

COLOPHON

       Cette page fait partie de la publication 3.57 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <http://www.blaess.fr/christophe/>   (1996-2003),    Alain    Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>   ou   par   un  rapport  de  bogue  sur  le  paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».