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 reels et sauves  sont  egalement
       fixes.

       Sous  Linux  setuid()  est  implemente  comme  le  specifie POSIX, avec
       l'option _POSIX_SAVED_IDS. Ceci permet a un  programme  Set-UID  (autre
       que  root) d'abandonner tous ses privileges, d'effectuer des taches non
       privilegiees, et de retrouver son UID effectif de maniere securisee.

       Si l'utilisateur est  le  superutilisateur,  ou  si  le  programme  est
       Set-UID  root,  des  precautions  particulieres doivent etre prises. La
       fonction setuid() verifie l'UID effectif de l'appelant et si  c'est  le
       superutilisateur,  tous  les  UID du processus sont mis a uid. Une fois
       ceci  effectue,  il  est  impossible  au  programme  de  retrouver  ses
       privileges de superutilisateur.

       Ainsi  un  programme  Set-UID root desireux d'abandonner temporairement
       ses privileges, en prenant l'identite d'un utilisateur ordinaire,  puis
       de recuperer ses privileges par la suite ne doit pas utiliser setuid().
       On peut accomplir ceci en utilisant l'appel seteuid(2).

VALEUR RENVOY'EE

       S'il reussit, cet appel systeme renvoie 0. S'il echoue, il  renvoie  -1
       et remplit errno en consequence.

ERREURS

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

       EPERM  L'utilisateur n'est pas privilegie  (sous  Linux :  n'a  pas  la
              capacite CAP_SETUID) et uid ne correspond ni a l'UID reel, ni au
              set-uid sauve du processus.

CONFORMIT'E

       SVr4, POSIX.1-2001. Pas tout a fait  compatible  avec  l'appel  systeme
       BSD 4.4, qui positionne l'ensemble des ID reel, sauve et effectif.

NOTES

       Linux  dispose  d'un  concept  d'UID  de  systeme  de fichiers, qui est
       normalement egal a l'UID  effectif.  L'appel  setuid()  fixe  egalement
       l'UID   de   systeme  de  fichiers  du  processus  appelant.  Consultez
       setfsuid(2).

       Si l'uid est different de l'ancien UID effectif, le processus ne pourra
       pas laisser d'image memoire (core dump) sur le disque.

       L'appel   systeme   setuid()  original  de  Linux  ne  gerait  que  des
       identifiants d'utilisateur sur 16 bits.  En  consequence,  Linux 2.4  a
       ajoute  setuid32()  qui  prend  en  charge des identifiants 32 bits. La
       fonction  setuid()  de  la  glibc  qui  l'encapsule  gere  de   maniere
       transparente ces differences 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      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   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'equipe francophone de traduction de Debian (2006-2009).

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.