ich habe ein komisches Problem mit NIS:
Als NIS Server läufft hier im Netzwerk ein Suse 9.3. Die Clients sind
hauptsächlich Suse Rechner, aber es gibt auch noch 2 Debian und 1
Mandrake Client.
Nun passiert folgendes: Wenn ich auf dem NIS-Server ein Passwort für
einen Benutzer eingebe, kann ich mich auf allen Suse-Rechnern einloggen,
aber nicht auf den Debian- oder Mandrake-Clients. Dabei ist es egal, ob
ich yppasswd oder passwd gefolgt von make -C /var/yp benutze.
Ändere ich das Passwort aber von einem anderen Rechner aus (egal welche
Distri) funktioniert das Passwort überall.
Ich habe den NIS-Server im Debug Modus gestartet und gesehen, dass die
Suse Rechner die Map shadow.byname abfragen, die anderen dagegen
passwd.byname.
Weiß vielleicht jemand, wie man das ändern kann, bzw. warum die
Passwörter auf dem Server direkt anscheinend nicht korrekt eingetragen
werden?
Florian
Früher (vor SUSE 9.3) wurden passwd und shadow gemerged bevor sie an die
NIS Clients ausgeliefert wurden. Hatte den Nachteil das jeder Benutzer
die Passwörter sehen konnte. Die shadow-Map kann ich als normaler
Benutzer nicht abfragen.
Also musst du entweder raus finden, wie du deinen Clients bei bringst
die shadow zu benutzen oder du musst auf dem Server beide Dateien
mergen. Dazu in /var/yp/Makefile MERGE_PASSWD auf true setzen.
(Hab hier nur SUSE.)
so long
Thomas.
> Also musst du entweder raus finden, wie du deinen Clients bei bringst
> die shadow zu benutzen
Das ist quasi das Problem, ich finde dazu keine Einstellung in Debian...
> oder du musst auf dem Server beide Dateien
> mergen. Dazu in /var/yp/Makefile MERGE_PASSWD auf true setzen.
> (Hab hier nur SUSE.)
Das habe ich schon gemacht, MERGE_PASSWD steht auf true. Hab aber gerade
noch was im MakeFile entdeckt, was mich stutzig macht:
ifeq (x$(MERGE_PASSWD),xtrue)
passwd.byname: $(PASSWD) $(SHADOW) $(YPDIR)/Makefile
@echo "Updating $@..."
@$(UMASK); \
$(MERGER) -p $(PASSWD) $(SHADOW) | \
$(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINUID) ) \
print $$1"\t"$$0 }' | $(DBLOAD) -i $(PASSWD) \
-o $(YPMAPDIR)/$@ - $@
-@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@
passwd.byuid: $(PASSWD) $(SHADOW) $(YPDIR)/Makefile
@echo "Updating $@..."
@$(UMASK); \
$(MERGER) -p $(PASSWD) $(SHADOW) | \
$(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINUID) ) \
print $$3"\t"$$0 }' | $(DBLOAD) -i $(PASSWD) \
-o $(YPMAPDIR)/$@ - $@
-@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@
# Don't build a shadow map !
shadow.byname:
@echo "Updating $@... Ignored -> merged with passwd"
Hier wird nach meinem Verständnis passwd mit shadow gemerged, aber gar
keine eigene shadowmap erstellt.
Dann ist es doch umso seltsamer, dass die Clients, die die shadow-map
anfragen funktionieren, die mit passwd.byname aber nicht?!
Florian