SETGID(2)          Manuel du programmeur Linux          SETGID(2)


NOM
       setuid - Fixer l'ID de l'utilisateur.

SYNOPSIS
       #include <unistd.h>

       int setuid(uid_t uid)

DESCRIPTION
       setuid  fixe  l'UID effectif du processus en cours. Si cet
       UID effectif est celui du Super-User,  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  pro­
       gramme  Set-UID  (autre  que  root)  d'abandonner tous ses
       privilèges, d'effectuer des tâches non-privilégiée, et  de
       retrouver son UID effectif de manière sécurisée.

       Si l'utilisateur est le Super-User, ou si le programme est
       Set-UID root, des précautions particulières  doivent  être
       prises.   La  fonction  setguid  vérifie l'UID effectif de
       l'appelant et si c'est le Super-User, tous les UID du pro­
       cessus  sont  mis  à  uid.  une fois ceci effectué, il est
       impossible au programme de  retrouver  ses  privilèges  de
       Super-User.

       Ainsi un programme Set-UID root désireux d'abandonner tem­
       porairement 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.

VALEUR RENVOYÉE
       setuid  renvoie  0 s'il réussit, ou -1 s'il échoue, auquel
       cas errno contient le code d'erreur.

ERREURS
       EPERM   L'utilisateur n'est pas Super-User et uid ne  cor­
               respond  ni  à l'UID effectif, ni à l'UID sauvé du
               processus.

CONFORMITÉ
       SVr4, SVID, POSIX.1.  Pas  tout  à  fait  compatible  avec
       l'apppel  système  BSD  4.4, qui positionne l'ensemble des
       IDs réel, sauvé et effectif. SVr4  indique  une  condition
       d'erreur supplémentaire EINVAL.

SPÉCIFICITÉS LINUX
       Linux  dispose  d'un concept d'UID de système de fichiers,
       qui est normalement égal à l'UID effectif. L'appel  setuid
       peut  également fixer l'UID de système de fichiers du pro­
       cessus en cours.  Voir setfsuid(2).




Linux                    19 Juillet 1997                        1





SETGID(2)          Manuel du programmeur Linux          SETGID(2)


       Si l'uid est différent de l'ancien UID effectif,  le  pro­
       cessus  ne  pourra pas laisser d'image mémoire (core dump)
       sur le disque.


VOIR AUSSI
       getuid(2), setreuid(2), seteuid(2), setfsuid(2).


TRADUCTION
       Christophe Blaess, 1997.














































Linux                    19 Juillet 1997                        2