environ

ENVIRON(7)                        Dateiformate                        ENVIRON(7)



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, daß das Vehalten vieler Programme und Bibliotheks -
       Routinen vom Vorhandensein oder dem Inhalt bestimmter Umgebunsvariablen
       beeinflußt 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 veranlaßt gewisse Programme und Bibliotheks - Routinen,
       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 Zeitzonen - Informationen.

       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, daß es hier ein Sicherheitsproblem gibt.  Schon
       manches System - Kommando 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).



Linux                           27. Dezember 1998                     ENVIRON(7)