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> ».