NOM¶
setresuid, setresgid - Définir les UID ou les GID réels, effectifs et
sauvés
SYNOPSIS¶
#define _GNU_SOURCE /* Consultez
feature_test_macros(7) */
#include <unistd.h>
int setresuid(uid_t ruid, uid_t euid, uid_t
suid);
int setresgid(gid_t rgid, gid_t egid, gid_t
sgid);
DESCRIPTION¶
setresuid() définit les UID réel, effectif et (effectif)
sauvé du processus appelant.
Un processus utilisateur non privilégié peut définir son UID
réel, effectif ou sauvé avec sa valeur d'UID actuel, d'UID effectif
actuel, ou d'UID sauvé.
Un processus privilégié (sous Linux, qui a la capacité
CAP_SETUID) peut positionner son UID réel, effectif ou sauvé
à une valeur quelconque.
Si l'un des paramètres vaut -1, la valeur correspondante n'est pas
modifiée.
Indépendamment des changements concernant les UID réel, effectif et
sauvés, le fsuid est toujours défini à la même valeur que
l'UID effectif.
De manière analogue,
setresgid() définit les GID réel,
effectif et sauvé du processus appelant (et définit toujours le
fsgid à la même valeur que le GID effectif) avec les mêmes
restrictions pour les processus n'ayant aucun GID nul.
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 cet
appel pourrait porter cet UID au-delà de sa limite
RLIMIT_NPROC.
- EPERM
- Le processus n'a pas de privilèges (n'a pas la
capacité CAP_SETUID) et essaie de modifier ses ID de
manière interdite.
VERSIONS¶
Ces appels sont disponibles sous Linux depuis la version 2.1.44.
Ces appels ne sont pas standards ; ils apparaissent également sur
HP-UX et certains BSD.
NOTES¶
Sous HP-UX et FreeBSD, le prototype se trouve dans
<unistd.h>. Sous
Linux, le prototype est fourni par la glibc depuis la version 2.3.2.
Les appels système
setresuid() et
setresgid() originaux de
Linux ne géraient que des identifiants d'utilisateur et de groupe sur
16 bits. En conséquence, Linux 2.4 a ajouté
setresuid32() et
setresgid32() qui prennent en charge des
identifiants 32 bits. Les fonctions
setresuid() et
setresgid() de la glibc qui les encapsulent gèrent de manière
transparente ces différences entre noyaux.
VOIR AUSSI¶
getresuid(2),
getuid(2),
setfsgid(2),
setfsuid(2),
setreuid(2),
setuid(2),
capabilities(7),
credentials(7)
COLOPHON¶
Cette page fait partie de la publication 3.44 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> ».