setuid   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 27 mai 2004
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
setuid - Fixer l'ID de l'utilisateur  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <sys/types.h>
#include <unistd.h>

int setuid(uid_t uid);  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
setuid() fixe l'UID effectif du processus appelant. Si cet UID effectif est celui du superutilisateur, l'UID réel et le Set-UID sauvé 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 superutilisateur, 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
setuid() renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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É   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
SVr4, POSIX.1-2001. Pas tout à fait compatible avec l'appel système BSD 4.4, qui positionne l'ensemble des IDs réel, sauvé et effectif.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
 



Notes Linux   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Linux dispose d'un concept d'UID de système de fichiers, qui est normalement égal à l'UID effectif. L'appel peut également fixer 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
getuid(2), seteuid(2), setfsuid(2), setreuid(2), credentials(7), capabilities(7)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 8 janvier 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 setuid ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
Notes Linux
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EAGAINERREURS
EPERMERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:51:26, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional