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