NIS - FreeBSD 5.3 server und Linux (Gentoo) Clients

From: Tom S. <dagobert82(at)web.de>
Date: Mon, 27 Sep 2004 12:10:16 +0000

Hallo,

ich hab ein Problem mit meinem NIS und hoffe das mir da mal jemand
helfen kann.

Die Situation stellt sich wie folgt dar:
Ich habe einen FreeBSD Server (5.3) auf dem mein NIS läuft. Darauf
sollen mehrere Linux Clients zugreifen. Der Server war früher auch Linux
und alles funktionierte so wie es sollte. Dann wurde der Server auf
FreeBSD umgestellt und NIS geht nicht mehr wirklich. NIS wurde wie im
Handbuch beschrieben eingerichtet und die Clients nicht geändert.
Das Problem das FreeBSD eine /etc/master.passwd und Linux eine
/etc/shadow benutzt ist mir bekannt. Ich habe auch schon einen Patch
gefunden der das Problem beheben sollte (ist allerdings nur für FreeBSD
4.9 getestet) - der geht aber irgendwie nicht. Der bricht mit einer
Fehlermeldung ab das er nur 1 von 2 Aufgaben erfüllen konnte. Und ich
kann mich immer nicht auf den Clients einloggen.

Hier ist der Patch mal, den habe ich aus irgendeinem anderen Forum:

--- Makefile.dist Fri Mar 7 21:15:21 2003
+++ Makefile Wed Jun 11 20:14:35 2003
@@ -188,6 +190,7 @@
 aliases: mail.aliases
 
 master.passwd: master.passwd.byname master.passwd.byuid
+master.passwd: shadow.byname
 
 #
 # This is a special target used only when doing in-place updates with
@@ -559,6 +562,22 @@
        $(CAT) $(MASTER) | \
        $(AWK) -F: '{ if ($$1 != &quot;&quot; &amp;&amp; $$1 !~
&quot;^#.*&quot; &amp;&amp; $$1 != &quot;+&quot;) \
                print $$3&quot;\t&quot;$$0 }' $^ \
+ | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ -
$(TMP); \
+ $(RMV) $(TMP) $@
+ @$(DBLOAD) -c
+ @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
+ @if [ ! $(NOPUSH) ]; then echo &quot;Pushed $@ map.&quot; ; fi
+.endif
+
+
+shadow.byname: $(MASTER)
+ @echo &quot;Updating $@...&quot;
+.if ${MASTER} == &quot;/dev/null&quot;
+ @echo &quot;Master.passwd source file not found -- skipping&quot;
+.else
+ $(CAT) $(MASTER) | \
+ $(AWK) -F: '{ if ($$1 != &quot;&quot; &amp;&amp; $$1 !~
&quot;^#.*&quot; &amp;&amp; $$1 != &quot;+&quot;) \
+ print
$$1&quot;\t&quot;$$1&quot;:&quot;$$2&quot;:::::::&quot; }' $^ \
                | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ -
$(TMP); \
                $(RMV) $(TMP) $@
        @$(DBLOAD) -c

Da es damit aber nicht geklappt habe habe ich angefangen etwas zu
basteln und versucht mir aus meiner passwd datei eine eigene shadow
datei unter zuhilfename eines selbstgeschriebenen scriptes zu basteln
und das Makefile etwas abzuändern. Ich habe meine neue shadow datei nach
/var/yp kopiert und folgendes geändert in /var/yp/Makefile.
...
SHADOW = $(YPDIR)/shadow
...
master.passwd: master.passwd.byname master.passwd.byuid
master.passwd: shadow.byname

pushpw:
...
        @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) shadow.byname ; fi
...
shadow.byname: $(SHADOW)
        @echo "Updating $@..."
.if ${SHADOW} == "/dev/null"
        @echo "Shadow.passwd source file not found -- skipping"
.else
        @$(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
                print $$1"\t"$$0 }' $(SHADOW) \
                | $(DBLOAD) ${S} -f -i $(SHADOW) -o $(YPMAPDIR)/$@ -
$(TMP); \
                $(RMV) $(TMP) $@
        @$(DBLOAD) -c
        @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
        @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
.endif

Damit kann ich make ausführen ohne eine Fehlermeldung, aber ich kann
mich trotzden noch nicht einloggen.
Ich denke auch das ich die "+:::::::" - Felder bei den Clients richtig
gesetzt habe.

Gibt es da einen patch für FreeBSD 5.x der das löst oder hat irgend
jemand einen andere Idee? Ich wäre für jeden Rat dankbar.

Thx Tom.

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 27 Sep 2004 - 12:07:11 CEST

search this site