oracular (7) environ.7.gz

Provided by: manpages-de_4.23.1-1_all bug

BEZEICHNUNG

       environ - Umgebung des Benutzers

ÜBERSICHT

       extern char **environ;

BESCHREIBUNG

       Die  Variable environ zeigt auf die »Umgebung«, ein Feld von Zeigern auf Zeichenketten. Der letzte Zeiger
       in diesem Feld hat den Wert NULL. Die Umgebung wird dem Prozess von dem exec(2)-Aufruf verfügbar gemacht,
       wenn  ein  neues  Programm  gestartet  wird. Wenn ein Kindprozess mit fork(2) erstellt wird, erbt es eine
       Kopie der Umgebung seines Elternprozesses.

       Die Zeichenketten in environ haben die Form »Name=Wert«. Groß- oder Kleinschreibung wird  für  den  Namen
       berücksichtigt; außerdem darf der Name nicht das Zeichen »=« enthalten. Der Wert kann alles sein, was als
       Zeichenkette dargestellt werden kann. Weder der Name noch der Wert  dürfen  ein  eingebettetes  Null-Byte
       enthalten (»\0«), da dieses als Ende der Zeichenkette interpretiert wird.

       Umgebungsvariablen  können  in  die  Umgebung  der  Shell mit dem Befehl export von sh(1) oder dem Befehl
       setenv von csh(1) gelegt werden.

       Die anfängliche Umgebung  der  Shell  wird  auf  verschiedenen  Arten  aufgebaut,  wie  Definitionen  aus
       /etc/environment,  die  (auf  Systemen,  die  pam(8)  einsetzen)  durch  pam_env(8) für alle Benutzer zum
       Anmeldezeitpunkt verarbeitet wird. Zusätzlich können verschiedene Shell-Initialisierungsskripte, wie  das
       systemweite  Skript  /etc/profile  oder  benutzerbezogene  Initialisierungsskripte Befehle enthalten, die
       Variablen zu der Umgebung der Shell hinzufügen. Lesen Sie dafür die Handbuchseite Ihrer bevorzugten Shell
       für weitere Details.

       Bourne-artige Shells unterstützen die Syntax

           NAME=Wert Befehl

       um  eine  Umgebungsvariablendefinition  zu  erstellen,  deren Geltungsbereich nur den Prozess, der Befehl
       ausführt,  umfasst.  Mehrere  Variablendefinitionen,  getrennt  durch  Leerraumzeichen,   können   Befehl
       vorangestellt werden.

       Argumente  können  auch  beim Aufruf von exec(3) an die Umgebung weitergegeben werden. C-Programme können
       ihre Umgebung mit den Funktionen getenv(3), putenv(3), setenv(3) und unsetenv(3) beeinflussen.

       Es folgt eine Liste der typischerweise in einem System enthaltenen Umgebungsvariablen.  Diese  Liste  ist
       unvollständig  und  enthält  nur  häufige  Variablen,  die  von durchschnittlichen Benutzern in täglichen
       Routinen   gesehen   werden.   Die   spezifischen   Umgebungsvariablen   eines   Programms   oder   einer
       Bibliotheksfunktion   finden   Sie   im   Abschnitt   UMGEBUNG  oder  UMGEBUNGSVARIABLEN  der  jeweiligen
       Handbuchseite.

       USER   Der Name des angemeldeten Benutzers (wird von einigen Programmen aus  der  BSD-Welt  ausgewertet).
              Wird zum Anmeldezeitpunkt gesetzt, siehe den nachfolgenden Abschnitt ANMERKUNGEN.

       LOGNAME
              Der   Name  des  angemeldeten  Benutzers  (wird  von  einigen  Programmen  aus  der  System-V-Welt
              ausgewertet). Wird zum Anmeldezeitpunkt gesetzt, siehe den nachfolgenden Abschnitt ANMERKUNGEN.

       HOME   Das Anmeldeverzeichnis eines Benutzers. Siehe den nachfolgenden Abschnitt ANMERKUNGEN.

       LANG   Der Name einer Locale (eines Gebietsschemas), die für Locale-Kategorien  angewendet  werden  soll.
              Die  Locale  kann  durch  LC_ALL  oder  spezielle  Umgebungsvariablen  wie  LC_COLLATE,  LC_CTYPE,
              LC_MESSAGES, LC_MONETARY, LC_NUMERIC und LC_TIME überschrieben werden (siehe locale(7) für weitere
              Details über die Umgebungsvariablen LC_*).

       PATH   Die Abfolge der Verzeichnispräfixe, die von sh(1) und vielen anderen Programmen bei der Suche nach
              ausführbaren Dateien verwendet wird, wird  als  einfacher  Dateiname  angegeben  (das  heißt,  als
              Pfadname  ohne  Schrägstriche).  Die Präfixe werden durch Doppelpunkte getrennt (:). Die Liste der
              Präfixe wird vom Anfang bis zum Ende durchsucht, indem  der  Pfadname  aus  einem  vorangestellten
              Präfix,  einem  Schrägstrich und dem Dateinamen gebildet wird, bis eine ausführbare Datei gefunden
              wird.

              Außerdem kann als klassische Funktion ein  Präfix  der  Länge  Null  verwendet  werden  (als  zwei
              aufeinander  folgende  Doppelpunkte  oder einen vorangestellten oder angehängten Doppelpunkt. Dies
              wird als das aktuelle Arbeitsverzeichnis interpretiert. Allerdings gilt diese Form der Angabe  als
              veraltet. POSIX merkt an, dass eine konforme Anwendung einen expliziten Pfadnamen verwenden sollte
              (zum Beispiel .), um das aktuelle Arbeitsverzeichnis anzugeben.

              Analog zu PATH benutzen einige Shells CDPATH, um das Ziel eines cd-Befehls zu finden, man(1) sucht
              in MANPATH nach Handbuchseiten, usw.

       PWD    Absoluter  Pfad  zum  aktuellen  Arbeitsverzeichnis;  muss teilweise kanonisch sein (keine .- oder
              ..-Komponenten).

       SHELL  Der absolute Pfadname der Anmeldeshell des Benutzers. Wird zum Anmeldezeitpunkt gesetzt, siehe den
              nachfolgenden Abschnitt ANMERKUNGEN.

       TERM   Der Terminaltyp, für den Ausgaben aufbereitet werden.

       PAGER  Das   vom   Benutzer   bevorzugte   Dienstprogramm   zum   Anzeigen   von  Textdateien.  Jede  als
              »command_string«-Operand zum Befehl sh -c akzeptierbare Zeichenkette  sollte  gültig  sein.  Falls
              PAGER  Null  oder  nicht  festgelegt  ist,  dann  fallen  Anwendungen, die ein Textanzeigeprogramm
              starten, auf ein Programm wie less(1) oder more(1) zurück.

       EDITOR/VISUAL
              Das  vom  Benutzer  bevorzugte  Dienstprogramm  zum   Bearbeiten   von   Textdateien.   Jede   als
              »command_string«-Operand zum Befehl sh -c akzeptierbare Zeichenkette sollte gültig sein.

       Bitte  beachten  Sie,  dass das Verhalten vieler Programme und Bibliotheksroutinen vom Vorhandensein oder
       dem Inhalt bestimmter Umgebungsvariablen beeinflusst wird. Zu den Beispielen gehören:

       •  Die Variablen LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES und  so  weiter  beeinflussen  die
          Handhabung der Locale, vgl. catopen(3), gettext(3) und locale(7).

       •  TMPDIR  beeinflusst  die  Pfadangabe  für  tempnam(3)  beim  Anlegen  von  Dateien  und  das temporäre
          Verzeichnis von sort(1) usw.

       •  LD_LIBRARY_PATH, LD_PRELOAD und andere  LD_*-Variablen  beeinflussen  das  Verhalten  des  dynamischen
          Laders/Linkers. Siehe auch ld.so(8).

       •  POSIXLY_CORRECT  veranlasst bestimmte Programme und Bibliotheksroutinen, sich an die POSIX-Vorgaben zu
          halten.

       •  Das Verhalten von malloc(3) wird von MALLOC_*-Variablen gesteuert.

       •  Die Variable HOSTALIASES enthält den Namen der Datei, in  der  die  Alias-Namen  für  gethostbyname(3)
          stehen.

       •  TZ  und TZDIR stellen Informationen über Zeitzonen für tzset(3) bereit und dadurch auch für Funktionen
          wie ctime(3), localtime(3), mktime(3) und strftime(3). Siehe auch tzselect(8).

       •  TERMCAP informiert darüber, wie bestimmte Terminals angesteuert werden müssen (oder enthält den  Namen
          einer Datei, die diese Informationen bereitstellt).

       •  COLUMNS  und  LINES  informieren Programme über die Größe des Fensters und setzen damit vielleicht die
          tatsächliche Größe außer Kraft.

       •  PRINTER oder LPDEST können den gewünschten Drucker angeben, siehe lpr(1).

ANMERKUNGEN

       Aus historischen Gründen muss environ standardmäßig im Programm des Benutzers  deklariert  sein.  Dennoch
       kann  environ  als  (nicht  standardmäßiges) Zugeständnis an Programmierer in der Header-Datei <unistd.h>
       deklariert sein, falls das Feature-Test-Makro _GNU_SOURCE definiert ist (siehe feature_test_macros(7)).

       Die Aktionen prctl(2) PR_SET_MM_ENV_START  und  PR_SET_MM_ENV_END  können  zur  Steuerung  des  Orts  der
       Umgebung des Prozesses verwandt werden.

       Die   Variablen   HOME,   LOGNAME,   SHELL   und   USER  werden  gesetzt,  wenn  der  Benutzer  über  die
       Sitzungsverwaltungs-Schnittstelle gewechselt wird, was typischerweise durch ein Programm wie login(1) aus
       der  Benutzerdatenbank  (wie  passwd(5))  geschieht. (Der Wechsel zum Systembenutzer »root« mittels su(1)
       kann zu einer gemischten Umgebung führen, in der LOGNAME und  USER  vom  vorherigen  Benutzer  übernommen
       werden, siehe su(1).)

FEHLER

       Es  ist offensichtlich, dass es hier ein Sicherheitsproblem gibt. Schon mancher Systembefehl hat den Pfad
       der Tugend verlassen, weil ein Benutzer ungebräuchliche Werte für IFS oder LD_LIBRARY_PATH angegeben hat.

       Es besteht auch die Gefahr der »Verschmutzung des Namensraums«. Programme wie make und autoconf  erlauben
       Überschreiben der Namen von Standard-Dienstprogrammen aus der Umgebung mit ähnlich benannten Variablen in
       Großbuchstaben. So verwendet man CC, um den gewünschten C-Compiler zu wählen (und analog  MAKE,  AR,  AS,
       FC, LD, LEX, RM, YACC, usw.). Aber in einigen traditionellen Nutzungen gibt eine Umgebungsvariable keinen
       Pfadnamen, sondern Programmoptionen an. So gibt es MORE  und  LESS.  Diese  Verwendung  wird  als  falsch
       verstanden und sollte für neue Programme vermieden werden.

SIEHE AUCH

       bash(1),  csh(1),  env(1), login(1), printenv(1), sh(1), su(1), tcsh(1), execve(2), clearenv(3), exec(3),
       getenv(3), putenv(3), setenv(3), unsetenv(3), locale(7), ld.so(8), pam_env(8)

ÜBERSETZUNG

       Die   deutsche    Übersetzung    dieser    Handbuchseite    wurde    von    Martin    Eberhard    Schauer
       <Martin.E.Schauer@gmx.de>,     Dr.     Tobias     Quathamer    <toddy@debian.org>,    Helge    Kreutzmann
       <debian@helgefjell.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

       Diese Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die  GNU  General  Public  License  Version  3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.