Provided by: manpages-fr-dev_3.65d1p1-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.65 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> ».

Linux                                           22 novembre 2010                                       SETUID(2)