ENVIRON(5)

ENVIRON(5)

dm.conf Home Page File Formats Index expire.ctl


NAME
       environ - user environment

SYNOPSIS
       #include <<unistd.h>>

       extern char **environ;

DESCRIPTION
       An  array  of  strings  called  the  `environment' is made
       available by exec(2) when a process begins.  By convention
       these strings have the form `name=value'.  Common examples
       are:

       USER   The name of the logged-in user (used by  some  BSD-
              derived programs).

       LOGNAME
              The  name  of the logged-in user (used by some Sys-
              tem-V derived programs).

       HOME   A user's login directory, set by login(1) from  the
              password file passwd(5).

       LANG   The  name  of a locale to use for locale categories
              when not overridden  by  LC_ALL  or  more  specific
              environment variables.

       PATH   The  sequence  of directory prefixes that sh(1) and
              many other programs apply in searching for  a  file
              known by an incomplete path name.  The prefixes are
              separated by `:'.  (Similarly one has  CDPATH  used
              by  some  shells  to  find  the  target of a change
              directory command, MANPATH used by man(1)  to  find
              manual pages, etc.)

       PWD    The  current working directory. Set by some shells.

       SHELL  The file name of the user's login shell.

       TERM   The terminal type for which output is  to  be  pre-
              pared.

       Further  names  may  be  placed  in the environment by the
       export command and `name=value' in sh(1), or by the setenv
       command  if  you use csh(1).  Arguments may also be placed
       in the environment at the point of an exec(2).  A  C  pro-
       gram  can  manipulate  its environment using the functions
       getenv(), putenv(), setenv() and unsetenv().

       Note that the behaviour of many programs and library  rou-
       tines  is  influenced  by the presence or value of certain
       environment variables.  A random collection:

       The variables LANG, LANGUAGE,  NLSPATH,  LOCPATH,  LC_ALL,
       LC_MESSAGES etc. influence locale handling.

       TMPDIR influences the path prefix of names created by tmp-
       nam() and other routines, the temporary directory used  by
       sort(1) and other programs, etc.

       LD_LIBRARY_PATH,   LD_PRELOAD  and  other  LD_*  variables
       influence the behaviour of the dynamic loader/linker.

       POSIXLY_CORRECT makes certain programs  and  library  rou-
       tines follow the prescriptions of POSIX.

       The  behaviour of malloc() is influenced by MALLOC_* vari-
       ables.

       The variable HOSTALIASES gives the name of a file contain-
       ing aliases to be used with gethostbyname().

       TZ and TZDIR give time zone information.

       TERMCAP gives information on how to address a given termi-
       nal (or gives the name of a file containing such  informa-
       tion).

       Etc. etc.

       Clearly  there is a security risk here. Many a system com-
       mand has been tricked into mischief by a user  who  speci-
       fied unusual values for IFS or LD_LIBRARY_PATH.

SEE ALSO
       login(1) sh(1) bash(1) csh(1) tcsh(1) exec(2) 
       getenv(3) putenv(3) setenv(3) unsetenv(3). 

dm.conf Home Page File Formats Index expire.ctl