Scroll to navigation

GETENV(3) Manuel du programmeur Linux GETENV(3)

NOM

getenv, secure_getenv - Lire une variable d'environnement

SYNOPSIS

#include <stdlib.h>

char *getenv(const char *name);
char *secure_getenv(const char *name);


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

secure_getenv(): _GNU_SOURCE

DESCRIPTION

La fonction getenv() recherche dans la liste des variables d'environnement une variable nommée name, et renvoie un pointeur sur la chaîne value correspondante.

La fonction secure_getenv() spécifique à GNU est simplement comme getenv(), à la différence qu'elle renvoie NULL dans les cas où « secure execution » (exécution sécurisée) est nécessaire. L'exécution sécurisée est nécessaire si l'une des conditions suivantes était vraie quand le programme exécuté pour le processus appelant a été chargé :

  • l'UID effectif du processus ne correspondait pas son UID réel, ou le GID effectif du processus ne correspondait pas son GID réel (c'est typiquement le cas lors de l'exécution d'un programme Set-UID ou Set-GID) ;
  • le bit de capacité effective a été défini sur le fichier exécutable ;
  • le processus a une capacité non vide permise définie.

L'exécution sécurisée pourrait aussi être nécessaire si elle est déclenchée par certains modules de sécurité Linux.

La fonction secure_getenv() a pour but d'être utilisée dans les bibliothèques polyvalentes pour éviter les vulnérabilités qui pourraient survenir si des programmes Set-UID ou Set-GID faisaient accidentellement confiance à l'environnement.

VALEUR RENVOYÉE

La fonction getenv() renvoie un pointeur sur la valeur correspondante, dans l'environnement du processus, ou NULL s'il n'y a pas de correspondance.

VERSIONS

secure_getenv() a été introduite dans la glibc dans sa version 2.17.

CONFORMITÉ

getenv() : SVr4, POSIX.1-2001, BSD 4.3, C89, C99.

secure_getenv() est une extension GNU.

NOTES

Les chaînes dans la liste des variables d'environnement sont de la forme nom=valeur.

Telle qu'elle est généralement implémentée, getenv() renvoie un pointeur vers une chaîne de la liste d'environnement. L'appelant doit faire attention de ne pas modifier cette chaîne car cela modifierait l'environnement du processus.

L'implémentation de getenv() ne nécessite pas qu'elle soit réentrante. La chaîne pointée par la valeur de retour de getenv() peut être allouée statiquement et peut être modifiée par un appel ultérieur à getenv(), putenv(3), setenv(3) ou unsetenv(3).

Le mode « secure execution » (exécution sécurisée) de secure_getenv() est contrôlé par l'attribut AT_SECURE contenu dans le vecteur auxiliaire passé du noyau à l'espace utilisateur.

VOIR AUSSI

clearenv(3), getauxval(3), putenv(3), setenv(3), unsetenv(3), capabilities(7), environ(7)

COLOPHON

Cette page fait partie de la publication 3.52 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). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».

14 août 2012 GNU