mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-18 17:00:49 +01:00
6c394ac5f9
This is a ported/modified version of yppasswd from the NYS yppasswd-0.5 package. This package has code in it from both Olaf Kirch and Theo de Raadt. There are GPL references and BSD-style copyright all over the place... hopefully I won't get flamed into oblivion for commiting this. This program has been modified from the original in the following ways: - Changed the ALLOW_CHFN and ALLOW_CHSH compile-time options into run-time options. - Demolished the password update functions and replaced them with routines to handle FreeBSD-style passwordd databases. It is expected that a seperate master.passwd file will be maintained for use with the NIS maps. yppasswd will have to be told where it is: % yppasswdd -m /var/yp/master.passwd A /var/yp/passwd file will be generated from /var/yp/master.passwd by /var/yp/Makefile. When yppasswdd has finished modifying the master.passwd file, it will invoke /usr/libexec/yppwupdate, which is a script that will run /var/yp/Makefile to generate new maps and push them. Note that there are copies if pw_util.c and pw_copy.c here. This is deliberate: they are *not* identical to the originals. Very similar, yes, but not identical. *sigh*
58 lines
1.1 KiB
C
58 lines
1.1 KiB
C
/*
|
|
* yppasswdd
|
|
* Copyright 1994 Olaf Kirch, <okir@monad.swb.de>
|
|
*
|
|
* This program is covered by the GNU General Public License, version 2.
|
|
* It is provided in the hope that it is useful. However, the author
|
|
* disclaims ALL WARRANTIES, expressed or implied. See the GPL for details.
|
|
*
|
|
* This file was generated automatically by rpcgen from yppasswd.x, and
|
|
* editied manually.
|
|
*/
|
|
|
|
#include <rpc/rpc.h>
|
|
#include "yppasswd.h"
|
|
|
|
|
|
bool_t
|
|
xdr_xpasswd(XDR *xdrs, xpasswd *objp)
|
|
{
|
|
if (!xdr_string(xdrs, &objp->pw_name, ~0)) {
|
|
return (FALSE);
|
|
}
|
|
if (!xdr_string(xdrs, &objp->pw_passwd, ~0)) {
|
|
return (FALSE);
|
|
}
|
|
if (!xdr_int(xdrs, &objp->pw_uid)) {
|
|
return (FALSE);
|
|
}
|
|
if (!xdr_int(xdrs, &objp->pw_gid)) {
|
|
return (FALSE);
|
|
}
|
|
if (!xdr_string(xdrs, &objp->pw_gecos, ~0)) {
|
|
return (FALSE);
|
|
}
|
|
if (!xdr_string(xdrs, &objp->pw_dir, ~0)) {
|
|
return (FALSE);
|
|
}
|
|
if (!xdr_string(xdrs, &objp->pw_shell, ~0)) {
|
|
return (FALSE);
|
|
}
|
|
return (TRUE);
|
|
}
|
|
|
|
|
|
bool_t
|
|
xdr_yppasswd(XDR *xdrs, yppasswd *objp)
|
|
{
|
|
if (!xdr_string(xdrs, &objp->oldpass, ~0)) {
|
|
return (FALSE);
|
|
}
|
|
if (!xdr_xpasswd(xdrs, &objp->newpw)) {
|
|
return (FALSE);
|
|
}
|
|
return (TRUE);
|
|
}
|
|
|
|
|