PATH környezeti változó

A PATH környezeti változó egy fontos biztonsági elem. A parancsok keresésekor használt könyvtárakat határozza meg.

Az alapértelmezett rendszerszintű PATH érték az /etc/profile fájlban van megadva, emellett minden felhasználó rendelkezik egy saját PATH értékkel a saját $HOME/.profile fájlban. A .profile fájlban lévő PATH érték felülírja a rendszerszintű PATH értéket vagy további könyvtárakat ad hozzá.

A PATH környezeti változó jogosulatlan módosításai lehetővé tehetik a rendszer felhasználóinak más felhasználók "meghamisítását", és ez alól a root felhasználók sem kivételek. A hamisító (más néven trójai) programok lecserélik a rendszer parancsait, majd elfogják az eredeti parancsnak szánt információkat, például a felhasználói jelszavakat.

Tegyük fel például, hogy egy felhasználó úgy módosítja a PATH értékét, hogy a rendszer a parancsok futtatásakor először a /tmp könyvtárban keres. Ezután a felhasználó elhelyez a /tmp könyvtárban egy su nevű programot, amely az eredeti su paranccsal megegyező módon bekéri a root jelszót. Ezután a /tmp/su program elküldi a root jelszót a felhasználónak, és kilépés előtt meghívja a valódi su parancsot. A felvázolt példában az su parancsot használó valamennyi root felhasználó felfedte a jelszavát, méghozzá anélkül, hogy tudna erről.

A rendszeradminisztrátorok és felhasználók PATH környezeti változójával kapcsolatos problémák néhány egyszerű lépéssel elkerülhetők:

  • Ha kétségei vannak, akkor használjon teljes útvonalakat. Teljes elérési út megadása esetén a PATH környezeti változó figyelmen kívül marad.
  • Soha ne helyezze az aktuális könyvtárat (. (pont)) a root felhasználó PATH értékébe. Soha ne engedje az aktuális könyvtár megadását az /etc/profile fájlban.
  • A root felhasználónak saját PATH meghatározással kell rendelkeznie a saját .profile fájljában. Az /etc/profile az összes felhasználó minimális igényét adja meg, míg a root felhasználónak ennél több könyvtárra lehet szüksége.
  • Figyelmeztesse a felhasználókat, hogy ne módosítsák a .profile fájljukat a rendszeradminisztrátorral végzett konzultáció nélkül. Ellenkező esetben egy gyanútlan felhasználó nem kívánatos hozzáféréshez vezető módosításokat is végezhet. A felhasználók .profile fájlján 740 engedélyeket kell beállítani.
  • A rendszeradminisztrátorok nem használhatják felhasználói szekcióból a su parancsot root jogosultságok szerzésére, mivel a felhasználónak a .profile fájlban beállított PATH értéke van hatályban. A felhasználók beállíthatják saját .profile fájljukat. A rendszeradminisztrátoroknak root felhasználóként kell bejelentkezniük a felhasználó gépére, vagy inkább a saját felhasználójukkal, majd ezután futtathatják az alábbi parancsot:
    /usr/bin/su - root

    Ez biztosítja, hogy a szekció a root környezetet fogja használni. Ha egy rendszeradminisztrátor másik felhasználói szekcióban tevékenykedik root felhasználóként, akkor a rendszeradminisztrátornak a szekcióban teljes elérési utakat kell használnia.

  • Az /etc/profile fájl bemeneti mező elválasztó (IFS) környezeti változóját védeni kell a módosítással szemben. A .profile fájl IFS környezeti változója felhasználható a PATH érték megváltoztatására.