SETEUID(2)

NOM
seteuid, setegid - Définir les UID et GID effectifs

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

int seteuid(uid_t euid);
int setegid(gid_t egid);

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

seteuid(), setegid() :
    _POSIX_C_SOURCE >= 200112L
        || /* Glibc versions <= 2.19: */ _BSD_SOURCE

DESCRIPTION
seteuid() sets the effective user ID of the calling process. Unprivileged processes may only set the effective user ID to the real user ID, the effective user ID or the saved set-user-ID.

Ceci fonctionne exactement de la même façon avec setegid() en raisonnant en terme de groupe (GID) au lieu d'utilisateur (UID).

VALEUR RENVOYÉE
En cas de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno reçoit une valeur adéquate.

Note : dans certains cas, seteuid() peut échouer alors même que l'UID de l'appelant est 0 ; ne pas vérifier la valeur renvoyée par seteuid() pour détecter un échec est une grave erreur qui compromet la sécurité du système.

ERREURS

EINVAL
    L'identifiant utilisateur ou groupe cible n'est pas valide dans cet espace de noms.

EPERM
    In the case of seteuid(): the calling process is not privileged (does not have the CAP_SETUID capability in its user namespace) and euid does not match the current real user ID, current effective user ID, or current saved set-user-ID.

    In the case of setegid(): the calling process is not privileged (does not have the CAP_SETGID capability in its user namespace) and egid does not match the current real group ID, current effective group ID, or current saved set-group-ID.

CONFORMITÉ
POSIX.1-2001, POSIX.1-2008, 4.3BSD.

NOTES
Définir l'UID (GID) effectif à la valeur de l'UID (GID) sauvé est possible depuis Linux 1.1.37 (1.1.38). Sur un système UNIX inconnu, il faut vérifier la présence de la constante _POSIX_SAVED_IDS.

Under glibc 2.0, seteuid(euid) is equivalent to setreuid(-1, euid) and hence may change the saved set-user-ID. Under glibc 2.1 and later, it is equivalent to setresuid(-1, euid, -1) and hence does not change the saved set-user-ID. Analogous remarks hold for setegid(), with the difference that the change in implementation from setregid(-1, egid) to setresgid(-1, egid, -1) occurred in glibc 2.2 or 2.3 (depending on the hardware architecture).

D'après POSIX.1, seteuid() (resp. setegid()) n'a pas besoin de permettre à euid (resp. egid) d'avoir la même valeur que l'identifiant d'utilisateur (resp. de groupe) effectif, et certaines implémentations ne le permettent effectivement pas.

  différences entre bibliothèque C et noyau
On Linux, seteuid() and setegid() are implemented as library functions that call, respectively, setreuid(2) and setregid(2).

VOIR AUSSI
geteuid(2), setresuid(2), setreuid(2), setuid(2), capabilities(7), credentials(7), user_namespaces(7)

COLOPHON
Cette page fait partie de la publication 5.08 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page, peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com> et Frédéric Hantrais <fhantrais@gmail.com> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french@lists.debian.org>.