Provided by: manpages-de_4.15.0-9_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    das aktuelle Arbeitsverzeichnis; gesetzt von einigen Shells

       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)

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  5.13  des  Projekts  Linux-man-pages. Eine
       Beschreibung des Projekts, Informationen, wie Fehler  gemeldet  werden  können  sowie  die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

Ü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⟩.