getenv, secure_getenv - eine Umgebungsvariable abfragen
Standard-C-Bibliothek (
libc,
-lc)
#include <stdlib.h>
char *getenv(const char *name);
char *secure_getenv(const char *name);
secure_getenv():
_GNU_SOURCE
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.
Die Funktion
getenv() gibt einen Zeiger auf den Wert in der Umgebung oder
NULL zurück, falls es keine Übereinstimmung gibt.
secure_getenv() kam erstmals in Glibc 2.17 vor.
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 |
getenv(): POSIX.1-2001, POSIX.1-2008, C99, SVr4, 4.3BSD.
secure_getenv() ist eine GNU-Erweiterung.
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.
clearenv(3),
getauxval(3),
putenv(3),
setenv(3),
unsetenv(3),
capabilities(7),
environ(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<
[email protected]> und Chris Leick <
[email protected]> 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