Provided by: manpages-es_1.55-9_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).