Provided by:
manpages-de_0.5-2ubuntu1_all 
BEZEICHNUNG
environ - Umgebung des Benutzers
ÜBERSICHT
#include <unistd.h>
extern char **environ;
BESCHREIBUNG
Zu Beginn eines Prozesses stellt exec(2) ein String (Zeichenketten)
Array zur Verfügung. Dieses Array wird ‘Umgebung’ genannt und enthält
konventionsgemäß Zeichenketten in der Form von ‘name=value’. Übliche
Beispiele sind:
USER Der Name des angemeldeten Benutzers (wird von einigen Programmen
aus der BSD-Welt ausgewertet).
LOGNAME
Der Name des angemeldeten Benutzers (wird von einigen Programmen
aus der System-V-Welt ausgewertet).
HOME Das Anmeldeverzeichnis eines Benutzers, gesetzt von login(1)
nach Angaben aus passwd(5).
LANG Eine Variable, anhand derer versucht wird, nationale
Besonderheiten (Währung, Datumsformat...) zu verarbeiten, wenn
diese Steuerung nicht durch LC_ALL erfolgt oder durch
spezifischere Variablen.
PATH Die Reihenfolge von Verzeichnisnamen, in denen sh(1) und viele
weitere Programme nach Dateien suchen, deren Pfadname
unvollständig ist. Die einzelnen Namen werden durch ‘:’
getrennt. (Gleichermaßen benutzen einige Shells CDPATH, um das
Ziel eines cd - Kommandos zufinden, man(1) sucht in MANPATH nach
Handbuchseiten, usw.)
PWD Das aktuelle Arbeitsverzeichnis. Wird von einigen Shells
gesetzt.
SHELL Der Dateiname der Login-Shell des Benutzers.
TERM Der Terminaltyp, für den Ausgaben aufbereitet werden.
Der Umgebung können weitere Namen hinzugefügt werden. Dazu benutzt man
für die sh(1) das Kommando export und ‘Name=Inhalt’, für die csh(1)
gibt es das setenv - Kommando. Argumente können auch beim Aufruf von
exec(2) an die Umgebung weitergegeben werden. C-Programme können ihre
Umgebung mit den Funktionen getenv(), putenv(), setenv() und unsetenv()
beeinflussen.
Bitte beachten Sie, dass das Verhalten vieler Programme und
Bibliotheksroutinen vom Vorhandensein oder dem Inhalt bestimmter
Umgebungsvariablen beeinflusst wird. Eine Zufallsauswahl:
Die Variablen LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES
etc. beeinflussen die Verarbeitung landesspezifischer Daten.
TMPDIR liefert die Pfadangabe, die tmpnam() beim Anlegen von Dateien
benutzt, sort(1) benutzt es als Übergangsverzeichnis, usw.
LD_LIBRARY_PATH, LD_PRELOAD und andere LD_* Variablen beeinflussen das
Verhalten der dynamischen Loader / Linker.
POSIXLY_CORRECT veranlasst gewisse Programme und Bibliotheksroutinen,
sich an die Vorgaben von POSIX zu halten.
Das Verhalten von malloc() wird von MALLOC_* Variablen gesteuert.
Die Variable HOSTALIASES enthält den Namen der Datei, in der die Alias-
Namen für gethostbyname() stehen.
TZ und TZDIR geben Zeitzoneninformationen.
TERMCAP informiert darüber, wie bestimmte Terminals angesteuert werden
müssen (oder enthält den Namen eine Datei, die diese Informationen
bereitstellt).
Usw. usw.
Es ist offensichtlich, dass es hier ein Sicherheitsproblem gibt. Schon
manches Systemkommando hat den Pfad der Tugend verlassen, weil ein
Benutzer unübliche Werte für IFS oder LD_LIBRARY_PATH angegeben hat.
SIEHE AUCH
login(1), sh(1), bash(1), csh(1), tcsh(1), execve(2), exec(3),
getenv(3), putenv(3), setenv(3), unsetenv(3).