Provided by: manpages-es_1.55-10_all bug

NOMBRE

       environ - Entorno del usuario

SINOPSIS

       extern char **environ;

DESCRIPCIÓN

       La variable environ apunta a un vector de cadenas llamado `el entorno'.  (Esta variable se
       debe declarar en el programa de usuario, aunque se declara en el fichero cabecera unistd.h
       en  el  caso  de  que  los ficheros cabecera procedan de libc4 o libc5 y en el caso de que
       procedan de glibc y se haya definido _GNU_SOURCE.)  Cuando un proceso comienza, exec(3) le
       proporciona  este  vector  de  cadenas.   Por  convenio,  estas  cadenas  son  de la forma
       `nombre=valor'.  Algunos ejemplos comunes son:

       USER   El nombre del usuario que ha entrado en el sistema  (usado  por  algunos  programas
              derivados de BSD).

       LOGNAME
              El  nombre  del  usuario  que ha entrado en el sistema (usado por algunos programas
              derivados de System-V).

       HOME   El directorio de entrada del usuario, puesto por login  a  partir  del  fichero  de
              cuentas passwd(5).

       LANG   El  nombre  de  una  localización  para  su empleo como categoría de localizaciones
              cuando no  se  suministra  la  variable  de  ambiente  LC_ALL  o  alguna  otra  más
              específica.

       PATH   Lista  de  nombres de directorios que sh(1) y muchos otros programas emplean cuando
              buscan un fichero cuyo nombre de camino es incompleto.  Los  nombres  se  separaran
              por  `:'.  (De forma análoga tenemos CDPATH que utilizan algunas shells para buscar
              el argumento de una orden de cambio de directorio de trabajo, MANPATH empleado  por
              man(1) para buscar páginas del Manual, etc.)

       PWD    El directorio de trabajo en curso. Puesto por varias shells.

       SHELL  El nombre del intérprete de órdenes usado por el usuario cuando entra en su cuenta.

       TERM   El tipo de terminal para la cual se va a formatear la salida.

       PAGER  La  utilidad  preferida  por  el  usuario  para mostrar el contenido de ficheros de
              texto.

       EDITOR/VISUAL
              La utilidad preferida por el usuario para editar ficheros de texto.

       Se pueden poner otros nombres en el entorno mediante la orden export y  `nombre=valor'  en
       sh(1),  o  mediante  la  orden setenv en csh(1).  También se pueden poner argumentos en el
       entorno cuando se llama a exec(2).  Un programa en C puede manipular su  entorno  mediante
       las funciones getenv(), putenv(), setenv() y unsetenv().

       Observe  que  el  comportamiento  de  muchos  programas  y  funciones  de biblioteca se ve
       influenciado por la presencia o valor de ciertas variables de entorno.  Una  colección  al
       azar:

       Las variables LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES,
        etc., tienen influencia en el manejo de localizaciones.

       TMPDIR  tiene  influencia  sobre el prefijo de nombres de ficheros creados por tempnam() y
       otras rutinas, el directorio temporal utilizado por sort(1) y otros programas, etc.

       LD_LIBRARY_PATH, LD_PRELOAD y otras variables que  comienzan  por  LD_  tienen  influencia
       sobre el comportamiento del enlazador/cargador dinámico.

       POSIXLY_CORRECT   hace   que  ciertos  programas  y  funciones  de  biblioteca  sigan  las
       prescripciones de POSIX.

       El comportamiento de malloc() viene determinado por variables cuyos nombres comienzan  por
       MALLOC_.

       La  variable  HOSTALIAS  da  el  nombre  de un fichero que contiene alias que utilizará la
       función gethostbyname().

       TZ y TZDIR proporcionan información sobre el huso horario.

       TERMCAP da información sobre cómo manejar una terminal dada (o da el nombre de un  fichero
       que contiene esa información).

       Etc., etc., etc.

       Claramente aquí hay un riesgo en cuanto a la seguridad. Muchas veces una orden del sistema
       ha sido forzada a actuar de forma malintencionadamente incorrecta por un  usuario  que  ha
       especificado valores inusuales para IFS o LD_LIBRARY_PATH.

       Antes de usar una nueva variable, hay que asegurarse de no emplear un nombre utilizado por
       el intérprete, como: MAIL, PS1, PS2, IFS etc.

VÉASE TAMBIÉN

       login(1),  sh(1),  bash(1),  csh(1),  tcsh(1),  zsh(1),  execve(2),  exec(3),   getenv(3),
       putenv(3), setenv(3), unsetenv(3).  system(3).