Subject: Re: YP & chpass/chfn/chsh question
To: Stephen M. Jones <smj@cirr.com>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: tech-net
Date: 03/28/2003 15:02:28
--VbJkn9YxBvnuCH5J
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Thu, Mar 27, 2003 at 04:03:22PM -0600, Stephen M. Jones wrote:
> Manuel writes:
>
> > No you don't have to run yppasswdd on the clients. The problem is something
> > else ...
> > What aurguments are passwd to yppasswdd on the server ?
>
> BTW, I'm using 1.6
>
> yppasswdd is started on the server without arguments. I assume you
> were looking for -noshell or -nogecos and such .. right?
>
> Here is what I see on the clients:
>
> # passwd -y test99
> Changing YP password for test99.
> Old password:
> New password:
> New password:
> Retype new password:
> The YP password has been changed ...
>
> # chfn -y test99
> chfn: unknown user: test99
I tested and have the same problem
>
> In the system source for the 'chpass' suite, there is a variable USE_YP
> which is checked for not being set to no, if it does this, it will also
> build 'pw_yp.c' which I assume has all the hooks for interfacing with
> the yppasswdd. It looks like it builds that and links it .. :
>
> usage: chpass [-a list] [-s shell] [-l] [-y] [user]
>
> Yet it still appears to be looking in the local passwd file (which is
> essentially empty)
I suspect it is because of this at the end of the Makefile:
getpwent.o: getpwent.c
${COMPILE.c} -UYP ${.IMPSRC}
In fact when YP is used, a custom getpwent.o isn't needed, we can use the one
from libc. I can't see why we want a custon getpwent.o anyway; if we build
a system without yp support, libc's getpwent.o won't have YP support either.
Can you try the attached patch ? It solve the problem for me.
--
Manuel Bouyer, LIP6, Universite Paris VI. Manuel.Bouyer@lip6.fr
NetBSD: 24 ans d'experience feront toujours la difference
--
--VbJkn9YxBvnuCH5J
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=diff
Index: Makefile
===================================================================
RCS file: /cvsroot/src/usr.bin/chpass/Makefile,v
retrieving revision 1.11
diff -u -r1.11 Makefile
--- Makefile 2002/03/22 18:10:22 1.11
+++ Makefile 2003/03/28 14:02:07
@@ -4,7 +4,7 @@
.include <bsd.own.mk>
PROG= chpass
-SRCS= chpass.c edit.c field.c table.c util.c getpwent.c
+SRCS= chpass.c edit.c field.c table.c util.c
BINOWN= root
BINMODE=4555
.PATH: ${.CURDIR}/../../lib/libc/gen
@@ -18,6 +18,8 @@
CPPFLAGS+=-DYP
DPADD+= ${LIBRPCSVC}
LDADD+= -lrpcsvc
+.else
+SRCS+= getpwent.c
.endif
DPADD+= ${LIBUTIL}
--VbJkn9YxBvnuCH5J--