Loading

NOM

       setuid - Fixer l’ID de l’utilisateur

SYNOPSIS

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

       int setuid(uid_t uid);

       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  non-root,  puis
       de récupérer ses privilèges par la suite ne doit pas utiliser setuid().
       On  peut  accomplir  ceci  en  utilisant   l’appel   (non-POSIX,   BSD)
       seteuid(2).

VALEUR RENVOYÉE

       En  cas  de  réussite,  zéro est renvoyé, sinon -1 est renvoyé et errno
       contient le code d’erreur.

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
       BSD4.4, qui positionne l’ensemble des ID réel, sauvé et effectif.

NOTES

   Notes sur Linux
       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. Voir 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.

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.23  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

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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