Login
Newsletter
Werbung

Sa, 20. Oktober 2001, 00:00

Zentrale Homeverzeichnisse mit NIS (yellow pages)

Der Sinn dieses Vorhabens ist, alle Logins und Homes auf einem zentralen Server zu halten. Dabei sollen die Clients mit möglichst wenig Administratiosnaufwand laufen.

Vorwort

Der Sinn dieses Vorhabens ist, alle Logins und Homes auf einem zentralen Server zu halten. Dabei sollen die Clients mit möglichst wenig Administratiosnaufwand laufen. Wie das geht, zeige ich in diesem kleinen Artikel. Ich beziehe mich hier auf SuSE 7.1, weil ich es nur mit diesem Betriebssystem ausprobiert habe, andere Linux-Distributionen sollten aber ähnlich laufen, da der NFS Server unter anderem von Thorsten Kukuk (kukuk@suse.de) geschrieben wurde.

Kurze Erklärung zu NIS

NIS (oder yp) ist ein System, mit dem Rechner eines großen Netzwerks in Domänen, sogenannte "NIS groups", zusammengefasst werden. Jede NIS group hat eigene "maps", das sind Tabellen, die man sich mit dem Kommando

ypcat -k <mapname>

anzeigen lassen kann. In diese Tabellen kann man verschiedene globale Einstellungen vergeben lassen, wie zum Beispiel den Inhalt der Datei /etc/passwd, oder /etc/auto.* für den automounter. Dabei ist zu beachten, dass hier nur der Inhalt, nicht die Datei selber übertragen wird, und dass dieser Inhalt von der eingestellten Domain abhängt. Das SuSE-Paket unterstützt, so wie ich das sehe, nur eine Domain pro Server.

Installation

Server

Also, auf dem Server müssen die Pakete make, nfsserver, ypserv, yp-tools, und zum Testen vorzugsweise ypbind installiert werden, auf dem Client ist das Paket ypbind das entscheidende. Darüberhinaus muss auf dem Server das Paket make installiert sein.

Nach der Installation auf dem Server liest man sich am besten mal die Datei /usr/share/doc/packages/ypserv/HOWTO.SuSE durch. Von da habe ich die meiste Info für diesen Text. Allen nicht-SuSE-Nutzern muss dieser Text reichen :-).

Als erstes muss der YPDOMAINNAME gesetzt werden. Dies geschieht mit dem Befehl domainname <ypdomainname>. Unter SuSE trägt man diesen in die Datei /etc/rc.config ein, und man hat ihn beim nächsten Reboot aktiv. Zur Kontrolle einfach domainname ohne Parameter aufrufen.

Als nächstes erstellen wir uns das Verzeichnis /var/yp/ypfiles, in dem die NIS-weiten Konfigdateien abgelegt werden. Hier kopieren bzw. erstellen wir uns folgende Dateien:

/var/yp/ypfiles/
/var/yp/ypfiles/passwd
/var/yp/ypfiles/shadow
/var/yp/ypfiles/group
/var/yp/ypfiles/gshadow
/var/yp/ypfiles/auto.rhome
/var/yp/ypfiles/auto.master
/var/yp/ypfiles/auto.misc
/var/yp/ypfiles/auto.vol

In der Datei passwd sollten keine User eingetragen werden, die bereits auf dem Server oder auf irgendwelchen Clients existieren. Das gleiche gilt auch für die Datei shadow. Hier sollten wirklich nur User eingetragen werden, die auf ALLEN Hosts existieren sollen. Es ist übrigens wenig ratsam, den User "root" zu verteilen, da man sonst riskiert, sich bei Netzwerkproblemen auszusperren.

Bei mir sieht die Datei "auto.master" wie folgt aus:

/rhome auto.rhome
/vol auto.vol

Sie ist im wesentlichen die Master-Datei für den Automounter und verweist auf weitere Dateien, die auf jeden Fall auf Ihr System angepasst werden müssen. Auf die Datei auto.rhome möchte ich trotzdem noch eingehen. Sie lautet nämlich bei mir:

* 192.168.1.1:/home/&

Die IP bezieht sich auf den NFS-Server, der die Home-Verzeichnisse exportiert. Das "*" passt auf alles, das "&" wird durch den durch den "*" gefundenen Treffer ersetzt. Versucht man in das Verzeichnis /rhome/outsoft zu wechseln, macht der Automounter also eine Anfrage nach 192.168.1.1:/home/outsoft. Der Server willigt nun auf diese Anfrage ein oder auch nicht, falls er dieses Verzeichnis nicht finden kann. Natürlich muss der NFS-Server laufen und richtig konfiguriert sein.

Um dies zu bewerkstelligen, trägt man folgendes in die Datei /etc/exports ein:

/home *.harakiri.com(rw,no_root_squash)

Bitte nicht vergessen, den NFS-Server zu restarten, er prüft im Betrieb nicht auf Änderungen dieser Datei.

Nun müssen wir dafür sorgen, dass der NIS-Server die Maps auch verteilen kann. Leider läuft er nicht mit diesen ASCII-Dateien, sondern er will sie in einem vorbereiteten Format haben. Bei dieser Umsetzung hilft uns nun /var/yp/Makefile, welches wir ein wenig anpassen müssen. So ist etwa in Zeile 53 die Variable auf /var/yp/ypfiles zu setzen, nicht auf /etc, sonst parst das Makefile noch die Dateien aus /etc, und das ist evtl. nicht gewünscht.

In Zeile 107 kommt die Definition, welche Dateien nun wirklich übertragen werden. Bei mir sieht sie so aus:

all: passwd shadow auto.master auto.vol auto.rhome

Vorsicht, die Dateien auto.vol und auto.rhome sind nicht Standard, sondern ich habe sie selber hinzugefügt. Daher muss das Makefile erweitert werden. Weiter unten im Makefile findet man z.B. den Eintrag auto.local:, den wir nicht verwenden. Man nimmt ihn aber am besten als Vorlage für unsere Dateien auto.vol und auto.rhome. Nicht vergessen, die Variablen AUTO_VOL und AUTO_RHOME zu definieren und richtig zu ersetzen! (Intelligenztest).

Wenn nun das Makefile so passt, werfen wir doch einfach make mit folgendem Befehl an: make -C /var/yp. Dies muss immer aufgerufen werden, wenn etwas an den Tabellen geändert wird. Läuft alles so wie es soll, trägt man am besten in die crontab folgende Zeile ein:

*/5 * * * * root make -s -C /var/yp

Dies erzeugt alle fünf Minuten die Tabellen neu.

Was, wenn ein User nun sein zentrales Passwort ändern will? Nun, passwd sollte erkennen, dass wir in einer NIS-Umgebung sind, und daher yppasswd aufrufen, was eine Verbindung zum Serverdienst yppasswdd aufruft. Damit dieses auf dem Server richtig funktioniert, passen wir in /etc/rc.config.d/ypserv.rc.config die Variable YPPWD_SRCDIR auf /var/yp/ypfiles an. In /etc/rc.config passen wir START_YPPASSWDD auf yes an. Starten können wir ypserv und yppasswd wie gewohnt mit dem Kommando rc<servicename> als root.

Client

Nun zum Client. Dies kann man recht bequem mit YaST konfigurieren, ich bevorzuge aber, direkt in der /etc/rc.config zu spielen. So muss YP_DOMAINNAME richtig gesetzt sein (s.o.). Dann sollte auch START_YPBIND auf yes stehen. Auf jeden Fall sollte YP_SERVER auf die IP des NIS-Servers zeigen. USE_NIS_FOR_AUTOFS muss auf YES stehen, damit der Automounter sich auch die NIS Tabellen reinzieht, und nicht nur die lokalen Dateien.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung