Provided by: manpages-de_0.5-2ubuntu1_all bug

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