Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       setuid - Fixer l'ID de l'utilisateur

SYNOPSIS

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

       int setuid(uid_t uid);

DESCRIPTION

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

       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()  fixe  é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.32  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain   Portal   <URL: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> ».