Scroll to navigation

GETENV(3) Linux-Programmierhandbuch GETENV(3)

BEZEICHNUNG

getenv, secure_getenv - eine Umgebungsvariable abfragen

ÜBERSICHT

#include <stdlib.h>
char *getenv(const char *name);
char *secure_getenv(const char *name);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

secure_getenv(): _GNU_SOURCE

BESCHREIBUNG

Die Funktion getenv() sucht in der Liste der Umgebungsvariablen die Umgebungsvariable name und gibt einen Zeiger auf die passende Zeichenkette Wert.

Die GNU-spezifische Funktion secure_getenv() ist mit getenv() identisch, außer dass sie in Fällen, in denen eine »sichere Ausführung« erforderlich ist, NULL zurückgibt. Sichere Ausführung ist nötig, falls eine der folgenden Bedingungen wahr war, als das vom aufrufenden Prozess gestartete Programm geladen wurde:

  • Die effektive Benutzerkennung des Prozesses passte nicht zur realen Benutzerkennung oder die effektive Gruppenkennung passte nicht zur realen Gruppenkennung. (Üblicherweise resultiert dies aus der Ausführung eines Set-User-ID- oder Set-Group-ID-Programms).
  • Das effektive Capability-Bit war für eine ausführbare Datei nicht gesetzt oder
  • der Prozess hat eine nicht leere, zulässige Capability gesetzt.

Sichere Ausführung kann ebenso erforderlich sein, falls dies durch irgendwelche Linux-Sicherheitsmodule ausgelöst wird.

Die Funktion secure_getenv() ist zur Benutzung in Universalbibliotheken gedacht, um Schwachstellen zu vermeiden. Diese können auftreten, wenn Set-User-ID- oder Set-Group-ID-Programme versehentlich der Umgebung vertrauen.

RÜCKGABEWERT

Die Funktion getenv() gibt einen Zeiger auf den Wert in der Umgebung oder NULL zurück, falls es keine Übereinstimmung gibt.

VERSIONEN

secure_getenv() kam erstmals in Glibc 2.17 vor.

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

Schnittstelle Attribut Wert
getenv(), secure_getenv() Multithread-Fähigkeit MT-Safe env

KONFORM ZU

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

secure_getenv() ist eine GNU-Erweiterung.

ANMERKUNGEN

Die Zeichenketten in der Liste der Umgebungsvariablen haben das Format Name=Wert.

Wie normalerweise implementiert, gibt getenv() einen Zeiger auf eine Zeichenkette innerhalb der Liste der Umgebungsvariablen zurück. Der Aufrufende muss sicherstellen, dass diese Zeichenkette sich nicht ändert, da das die Umgebung des Prozesses ändern würde.

Die Implementierung von getenv() muss nicht wiedereintrittsfähig sein. Die Zeichenkette, auf die der Rückgabewert der Funktion zeigt, könnte statisch zugewiesen werden und von einem anschließenden Aufruf von getenv(), putenv(3), setenv(3) oder unsetenv(3) geändert werden.

Der Modus »sichere Ausführung« von secure_getenv() wird durch den Schalter AT_SECURE gesteuert, der in dem vom Kernel an den Userspace übergebenen Hilfsvektor enthalten ist.

SIEHE AUCH

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

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und Chris Leick <c.leick@vollbio.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

15. September 2017 GNU