Variable de entorno PATH

La variable de entorno PATH es un control de seguridad importante. Especifica los directorios en los que se debe buscar para encontrar un mandato.

El valor PATH predeterminado de nivel de sistema se especifica en el archivo /etc/profile y, normalmente, cada usuario tiene un valor PATH en el archivo $HOME/.profile del usuario. El valor PATH del archivo .profile altera temporalmente el valor de PATH de todo el sistema o le añade directorios adicionales.

Los cambios no autorizados en la variable de entorno PATH pueden permitir a un usuario del sistema "suplantar" a otros usuarios (incluidos los usuarios root). Los programas de suplantación (también llamados programas troyanos) sustituyen los mandatos del sistema y, a continuación, capturan la información destinada a dicho mandato, como por ejemplo las contraseñas de usuario.

Por ejemplo, suponga que un usuario cambia el valor de PATH para que el sistema busque primero en el directorio /tmp cuando se ejecuta un mandato. A continuación, el usuario coloca en el directorio /tmp un programa llamado su que solicita la contraseña raíz igual que el mandato su . A continuación, el programa /tmp/su envía la contraseña de root al usuario y llama al mandato real su antes de salir. En este caso de ejemplo, cualquier usuario root que haya utilizado el mandato su revelaría la contraseña de root y ni siquiera sería consciente de ello.

Para evitar problemas con la variable de entorno PATH para los usuarios y administradores del sistema, haga lo siguiente:

  • Cuando no esté seguro, especifique nombres de vía de acceso completos. Si se especifica un nombre de vía de acceso completo, se ignora la variable de entorno PATH.
  • Nunca coloque el directorio actual (especificado por . (punto)) en el valor PATH especificado para el usuario root. No permita que el directorio actual se especifique en /etc/profile.
  • El usuario root debe tener su propia especificación PATH en su archivo .profile privado. Normalmente, la especificación en /etc/profile lista el estándar mínimo para todos los usuarios, mientras que el usuario root puede necesitar más o menos directorios que el predeterminado.
  • Advierta a otros usuarios que no cambien sus archivos .profile sin consultar al administrador del sistema. De lo contrario, un usuario desprevenido podría realizar cambios que permitan el acceso no deseado. Un archivo .profile de usuario debe tener los permisos establecidos en 740.
  • Los administradores del sistema no deben utilizar el mandato su para obtener el privilegio de root de una sesión de usuario, porque el valor PATH del usuario especificado en el archivo .profile está en vigor. Los usuarios pueden establecer sus propios archivos .profile. Los administradores del sistema deben iniciar sesión en la máquina del usuario como usuario root o, preferiblemente, utilizando su propio ID y, a continuación, utilizar el mandato siguiente:
    /usr/bin/su - root

    Esto garantiza que el entorno de root se utilice durante la sesión. Si un administrador del sistema funciona como root en otra sesión de usuario, el administrador del sistema debe especificar nombres de vía de acceso completos durante toda la sesión.

  • Proteja la variable de entorno de separador de campos de entrada (IFS) de que se cambie en el archivo /etc/profile. La variable de entorno IFS del archivo .profile se puede utilizar para alterar el valor de PATH.