Articulo de referencia

PATH (variable)

PATH is an environment variable on Unix-like operating systems , DOS , OS/2 , and Microsoft Windows , specifying a set of directories where executable programs are located. In g...

PATH is an environment variable on Unix-likeoperating systems, DOS, OS/2, and Microsoft Windows, specifying a set of directories where executable programs are located. In general, each executing process or user session has its own PATH setting.

History

Multics originated the idea of a search path. The early Unix shell only looked for program names in /bin, but by Version 3 Unix the directory was too large and /usr/bin, and a search path, became part of the operating system.[1]

Unix and Unix-like

On POSIX and Unix-like operating systems, the $PATH variable is specified as a list of one or more directory names separated by colon (:) characters.[2][3] Directories in the PATH-string are not meant to be escaped, making it impossible to have directories with : in their name.[4]

The /bin, /usr/bin, and /usr/local/bin directories are typically included in most users' $PATH setting (although this varies from implementation to implementation). The superuser also typically has /sbin and /usr/sbin entries for easily executing system administration commands. The current directory (.) is sometimes included by users as well, allowing programs residing in the current working directory to be executed directly. System administrators as a rule do not include it in $PATH in order to prevent the accidental execution of scripts residing in the current directory, such as may be placed there by a malicious tarbomb. In that case, executing such a program requires specifying an absolute (/home/userjoe/bin/script.sh) or relative path (./script.sh) on the command line.

Cuando el usuario especifica un nombre de comando o un programa realiza una llamada a `exec`$PATH , el sistema busca en el directorio, examinando cada uno de ellos de izquierda a derecha, un archivo cuyo nombre coincida con el del comando. Una vez encontrado, el programa se ejecuta como un proceso hijo del intérprete de comandos o del programa que emitió el comando.

DOS, OS/2 y Windows

En los sistemas operativos DOS, OS/2 y Windows, la %PATH%variable se especifica como una lista de uno o más nombres de directorio separados por ;caracteres de punto y coma ( ). [ 5 ]

El directorio del sistema de Windows (normalmente C:\WINDOWS\system32) suele ser el primer directorio en la ruta, seguido de muchos (pero no todos) los directorios de los paquetes de software instalados. Muchos programas no aparecen en la ruta, ya que no están diseñados para ejecutarse desde una ventana de comandos , sino desde una interfaz gráfica de usuario . Algunos programas pueden agregar su directorio al principio del contenido de la variable PATH durante la instalación, para acelerar el proceso de búsqueda y/o anular los comandos del sistema operativo. En la era de DOS, era costumbre agregar una línea o a AUTOEXEC.BAT .PATH {program directory};%PATH%SETPATH={program directory};%PATH%

Cuando se introduce un comando en un intérprete de comandos o un programa realiza una llamada al sistema para ejecutar otro programa, el sistema primero busca en el directorio de trabajo actual y luego en la ruta, examinando cada directorio de izquierda a derecha, buscando un archivo ejecutable cuyo nombre coincida con el comando proporcionado. Los programas ejecutables tienen extensiones de archivo .xml o EXE.yml COM, y los scripts por lotes tienen extensiones .xml BATo .xml CMD. También se pueden registrar otras extensiones de archivo ejecutable en el sistema.

Una vez que se encuentra un archivo ejecutable coincidente, el sistema crea un nuevo proceso que lo ejecuta.

La variable PATH facilita la ejecución de programas de uso frecuente ubicados en sus propias carpetas. Sin embargo, si se utiliza incorrectamente, el valor de la variable PATH puede ralentizar el sistema operativo al buscar en demasiadas ubicaciones o en ubicaciones no válidas.

Las ubicaciones no válidas también pueden impedir que los servicios se ejecuten por completo, especialmente el servicio 'Servidor', que suele ser una dependencia para otros servicios dentro de un entorno de Windows Server.

Implicaciones de seguridad

El uso indebido de la variable PATH puede introducir vulnerabilidades de seguridad. En particular, si un programa invoca comandos externos sin especificar rutas absolutas, puede ser susceptible al secuestro de rutas (también conocido como inyección PATH), donde un atacante coloca un ejecutable malicioso en un directorio que aparece antes en la ruta de búsqueda. Esto puede resultar en la ejecución de código no deseado o malicioso, especialmente en programas que se ejecutan con privilegios elevados. [ 6 ]

Referencias

  1. McIlroy, MD (1987). Un lector de Research Unix: extractos anotados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139.
  2. Especificación Unix de Open Group, Variables de entorno
  3. Especificación Unix de Open Group, función execve()
  4. Dash exec.c como ejemplo de implementación de un analizador de cadena PATH
  5. Microsoft.com, comando PATH
  6. "CWE-426: Ruta de búsqueda no confiable" . MITRE.

Nuevo

Obtenido de " https://en.wikipedia.org/w/index.php?title=PATH_(variable)&oldid=1353133713 "