Provided by: manpages-fr-dev_4.15.0-9_all bug

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   (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).

       ┌────────────────────────────────────────────────────┬──────────────────────┬─────────────┐
       │InterfaceAttributValeur      │
       ├────────────────────────────────────────────────────┼──────────────────────┼─────────────┤
       │getenv(), secure_getenv()                           │ Sécurité des threads │ MT-Safe env │
       └────────────────────────────────────────────────────┴──────────────────────┴─────────────┘

CONFORMITÉ

       getenv() : POSIX.1-2001, POSIX.1-2008, C89, 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)

COLOPHON

       Cette page fait partie de la publication 5.13 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> et David Prévot <david@tilapin.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.