Provided by: manpages-de_4.21.0-2_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⟩.