Hesiod

A Wikipédiából, a szabad enciklopédiából

A Hesiod névszolgáltatás (Hésziodosz angol nevéből) az Athena projekt keretein belül jött létre (1983 - 1991). DNS-szerű működésével olyan információk elérésére szolgál az adatbázisban, melyek ritkán változnak. Unix alapú rendszerekben többek között az /etc/password, /etc/group, és a /etc/printcap fájlok szolgálnak a megosztani kívánt információ tárolására. Az LDAP gyakorlatilag ugyanazokat az információkat szolgáltatja, amit a Hesiod, azonban, mivel a Hesiod kihasználhatja a már meglévő DNS-szervereket, azok hálózatba telepítését egyszerűbbé teszi.

Egy Unix rendszer /etc/passwd fálja tartalmazza az alábbi sort:

foo:x:100:10:Foo Bar:/home/foo:/bin/sh 

Ez a sor mondja meg a felhasználó azonosítóját, csoportját, teljes nevét, home könyvtárát és hogy milyen shellt használ. Kis számú felhasználóra, és kevés számítógépre jól működik, de amint több felhasználó több olyan gépet próbál használni, melyek mindegyike tárolja az adatokat, kritikussá válik a helyzet. Ezen a ponton válik hasznossá a Hesiod.

Ahelyett, hogy minden állomáson tárolná az adatokat, a Hesiod rekordokba teszi a DNS szerveren, így minden egyes kliens lekérdezést indíthat a DNS kiszolgáló felé. Egy felhasználó rekordjai a következőképpen néznek ki:

foo.passwd.ns.hesiod  IN  TXT  "foo:x:100:10:Foo Bar:/home/foo:/bin/sh"
100.passwd.ns.hesiod  IN  TXT  "foo:x:100:10:Foo Bar:/home/foo:/bin/sh"
100.uid.ns.hesiod     IN  TXT  "foo:x:100:10:Foo Bar:/home/foo:/bin/sh"

Három különböző rekordot találunk, mert a rendszernek többféleképpen kell tudnia elérni a tárolt információt. Az első sor login name alapján teszi lehetővé a felhasználók keresését, a másik kettő pedig azonosító alapján egyéb adatokét.

A kliens oldalon is van szükség némi konfigurációra. Az /etc/hesiod.conf beállítása:

rhs=hesiod
lhs=ns

Továbbá be kell állítani, hogy az /etc/resolv.conf fájl azt a név szervert használja, ami a Hesiod rekordokban is van. Tesztelésre használható a hesinfo program:

hesinfo foo passwd

válasza:

foo:x:100:10:Foo Bar:/home/foo:/bin/sh