getenv
Section: C Library Functions (3)
Updated: 5 février 2023
Index
Return to Main Contents
NOM
getenv, secure_getenv - Lire une variable d'environnement
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
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 (consulter
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 de
l'environnement ou NULL s'il n'y a pas de correspondance.
VERSIONS
secure_getenv() a été introduite dans la glibc dans sa version 2.17.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface | Attribut | Valeur
|
getenv(),
secure_getenv()
| Sécurité des threads | MT-Safe env
|
STANDARDS
getenv() : POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
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
à 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)
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>
et
David Prévot <david@tilapin.org>
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- VERSIONS
-
- ATTRIBUTS
-
- STANDARDS
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 00:19:16 GMT, May 23, 2024