From 67faa788b7fd1b43a0d987caa6d6dcc2f182932a Mon Sep 17 00:00:00 2001 From: des Date: Wed, 8 May 2002 01:35:22 +0000 Subject: These files haven't been used in a while. --- usr.bin/passwd/extern.h | 38 ------- usr.bin/passwd/local_passwd.c | 235 ------------------------------------------ usr.bin/passwd/yp_passwd.c | 207 ------------------------------------- 3 files changed, 480 deletions(-) delete mode 100644 usr.bin/passwd/extern.h delete mode 100644 usr.bin/passwd/local_passwd.c delete mode 100644 usr.bin/passwd/yp_passwd.c (limited to 'usr.bin') diff --git a/usr.bin/passwd/extern.h b/usr.bin/passwd/extern.h deleted file mode 100644 index eae768c..0000000 --- a/usr.bin/passwd/extern.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * From: @(#)extern.h 8.1 (Berkeley) 4/2/94 - * $FreeBSD$ - */ - -int krb_passwd(char *, char *, char *, char *); -int local_passwd(char *); diff --git a/usr.bin/passwd/local_passwd.c b/usr.bin/passwd/local_passwd.c deleted file mode 100644 index a01c8af..0000000 --- a/usr.bin/passwd/local_passwd.c +++ /dev/null @@ -1,235 +0,0 @@ -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static const char sccsid[] = "@(#)local_passwd.c 8.3 (Berkeley) 4/2/94"; -#endif /* not lint */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#ifdef YP -#include -#endif - -#ifdef LOGGING -#include -#endif - -#ifdef LOGIN_CAP -#ifdef AUTH_NONE /* multiple defs :-( */ -#undef AUTH_NONE -#endif -#include -#endif - -#include "extern.h" - -static uid_t uid; -int randinit; - -char *tempname; - -static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ - "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - -void -to64(s, v, n) - char *s; - long v; - int n; -{ - while (--n >= 0) { - *s++ = itoa64[v&0x3f]; - v >>= 6; - } -} - -char * -getnewpasswd(pw, nis) - struct passwd *pw; - int nis; -{ - int tries, min_length = 6; - int force_mix_case = 1; - char *p, *t; -#ifdef LOGIN_CAP - login_cap_t * lc; -#endif - char buf[_PASSWORD_LEN+1], salt[32]; - struct timeval tv; - - if (!nis) - (void)printf("Changing local password for %s.\n", pw->pw_name); - - if (uid && pw->pw_passwd[0] && - strcmp(crypt(getpass("Old password:"), pw->pw_passwd), - pw->pw_passwd)) { - errno = EACCES; - pw_error(NULL, 1, 1); - } - -#ifdef LOGIN_CAP - /* - * Determine minimum password length, next password change date, - * and whether or not to force mixed case passwords. - * Note that even for NIS passwords, login_cap is still used. - */ - if ((lc = login_getpwclass(pw)) != NULL) { - time_t period; - - /* minpasswordlen capablity */ - min_length = (int)login_getcapnum(lc, "minpasswordlen", - min_length, min_length); - /* passwordtime capability */ - period = login_getcaptime(lc, "passwordtime", 0, 0); - if (period > (time_t)0) { - pw->pw_change = time(NULL) + period; - } - /* mixpasswordcase capability */ - force_mix_case = login_getcapbool(lc, "mixpasswordcase", 1); - } -#endif - - for (buf[0] = '\0', tries = 0;;) { - p = getpass("New password:"); - if (!*p) { - (void)printf("Password unchanged.\n"); - pw_error(NULL, 0, 0); - } - if (strlen(p) < min_length && (uid != 0 || ++tries < 2)) { - (void)printf("Please enter a password at least %d characters in length.\n", min_length); - continue; - } - - if (force_mix_case) { - for (t = p; *t && islower(*t); ++t); - if (!*t && (uid != 0 || ++tries < 2)) { - (void)printf("Please don't use an all-lower case password.\nUnusual capitalization, control characters or digits are suggested.\n"); - continue; - } - } - (void)strcpy(buf, p); - if (!strcmp(buf, getpass("Retype new password:"))) - break; - (void)printf("Mismatch; try again, EOF to quit.\n"); - } - /* grab a random printable character that isn't a colon */ - if (!randinit) { - randinit = 1; - srandomdev(); - } -#ifdef NEWSALT - salt[0] = _PASSWORD_EFMT1; - to64(&salt[1], (long)(29 * 25), 4); - to64(&salt[5], random(), 4); - salt[9] = '\0'; -#else - /* Make a good size salt for algoritms that can use it. */ - gettimeofday(&tv,0); -#ifdef LOGIN_CAP - if (login_setcryptfmt(lc, "md5", NULL) == NULL) - pw_error("cannot set password cipher", 1, 1); - login_close(lc); -#else - (void)crypt_set_format("md5"); -#endif - /* Salt suitable for anything */ - to64(&salt[0], random(), 3); - to64(&salt[3], tv.tv_usec, 3); - to64(&salt[6], tv.tv_sec, 2); - to64(&salt[8], random(), 5); - to64(&salt[13], random(), 5); - to64(&salt[17], random(), 5); - to64(&salt[22], random(), 5); - salt[27] = '\0'; -#endif - return (crypt(buf, salt)); -} - -int -local_passwd(uname) - char *uname; -{ - struct passwd *pw; - int pfd, tfd; - - if (!(pw = getpwnam(uname))) - errx(1, "unknown user %s", uname); - -#ifdef YP - /* Use the right password information. */ - pw = (struct passwd *)&local_password; -#endif - uid = getuid(); - if (uid && uid != pw->pw_uid) - errx(1, "%s", strerror(EACCES)); - - pw_init(); - - /* - * Get the new password. Reset passwd change time to zero by - * default. If the user has a valid login class (or the default - * fallback exists), then the next password change date is set - * by getnewpasswd() according to the "passwordtime" capability - * if one has been specified. - */ - pw->pw_change = 0; - pw->pw_passwd = getnewpasswd(pw, 0); - - pfd = pw_lock(); - tfd = pw_tmp(); - pw_copy(pfd, tfd, pw, NULL); - - if (!pw_mkdb(uname)) - pw_error((char *)NULL, 0, 1); -#ifdef LOGGING - syslog(LOG_DEBUG, "user %s changed their local password\n", uname); -#endif - return (0); -} diff --git a/usr.bin/passwd/yp_passwd.c b/usr.bin/passwd/yp_passwd.c deleted file mode 100644 index f942b9b..0000000 --- a/usr.bin/passwd/yp_passwd.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Copyright (c) 1992/3 Theo de Raadt - * Copyright (c) 1994 Olaf Kirch - * Copyright (c) 1995 Bill Paul - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#ifdef YP -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "yppasswd_private.h" - -extern char *getnewpasswd(struct passwd *, int); - -int -yp_passwd(char *user) -{ - struct yppasswd yppasswd; - struct master_yppasswd master_yppasswd; - struct netconfig *nconf; - void *localhandle; - struct passwd *pw; - CLIENT *clnt; - struct rpc_err err; - char *master; - int *status = NULL; - uid_t uid; - - nconf = NULL; - _use_yp = 1; - - uid = getuid(); - - if ((master = get_yp_master(1)) == NULL) { - warnx("failed to find NIS master server"); - return(1); - } - - /* - * It is presumed that by the time we get here, use_yp() - * has been called and that we have verified that the user - * actually exists. This being the case, the yp_password - * stucture has already been filled in for us. - */ - - /* Use the correct password */ - pw = (struct passwd *)&yp_password; - - if (pw->pw_uid != uid && uid != 0) { - warnx("only the super-user may change account information \ -for other users"); - return(1); - } - - pw->pw_change = 0; - - /* Initialize password information */ - if (suser_override) { - master_yppasswd.newpw.pw_passwd = strdup(pw->pw_passwd); - master_yppasswd.newpw.pw_name = strdup(pw->pw_name); - master_yppasswd.newpw.pw_uid = pw->pw_uid; - master_yppasswd.newpw.pw_gid = pw->pw_gid; - master_yppasswd.newpw.pw_expire = pw->pw_expire; - master_yppasswd.newpw.pw_change = pw->pw_change; - master_yppasswd.newpw.pw_fields = pw->pw_fields; - master_yppasswd.newpw.pw_gecos = strdup(pw->pw_gecos); - master_yppasswd.newpw.pw_dir = strdup(pw->pw_dir); - master_yppasswd.newpw.pw_shell = strdup(pw->pw_shell); - master_yppasswd.newpw.pw_class = pw->pw_class != NULL ? - strdup(pw->pw_class) : ""; - master_yppasswd.oldpass = ""; - master_yppasswd.domain = yp_domain; - } else { - yppasswd.newpw.pw_passwd = strdup(pw->pw_passwd); - yppasswd.newpw.pw_name = strdup(pw->pw_name); - yppasswd.newpw.pw_uid = pw->pw_uid; - yppasswd.newpw.pw_gid = pw->pw_gid; - yppasswd.newpw.pw_gecos = strdup(pw->pw_gecos); - yppasswd.newpw.pw_dir = strdup(pw->pw_dir); - yppasswd.newpw.pw_shell = strdup(pw->pw_shell); - yppasswd.oldpass = ""; - } - - if (suser_override) - printf("Changing NIS password for %s on %s in domain %s.\n", - pw->pw_name, master, yp_domain); - else - printf("Changing NIS password for %s on %s.\n", - pw->pw_name, master); - - /* Get old password */ - - if (pw->pw_passwd[0] && !suser_override) { - yppasswd.oldpass = strdup(getpass("Old Password: ")); - if (strcmp(crypt(yppasswd.oldpass, pw->pw_passwd), - pw->pw_passwd)) { - errx(1, "sorry"); - } - - } - - if (suser_override) { - if ((master_yppasswd.newpw.pw_passwd = getnewpasswd(pw, 1)) == NULL) - return(1); - } else { - if ((yppasswd.newpw.pw_passwd = getnewpasswd(pw, 1)) == NULL) - return(1); - } - - if (suser_override) { - localhandle = setnetconfig(); - while ((nconf = getnetconfig(localhandle)) != NULL) { - if (nconf->nc_protofmly != NULL && - strcmp(nconf->nc_protofmly, NC_LOOPBACK) == 0) - break; - } - if (nconf == NULL) { - warnx("getnetconfig: %s", nc_sperror()); - return(1); - } - if ((clnt = clnt_tp_create(NULL, MASTER_YPPASSWDPROG, - MASTER_YPPASSWDVERS, nconf)) == NULL) { - warnx("failed to contact rpc.yppasswdd on host %s: %s", - master, clnt_spcreateerror("")); - endnetconfig(localhandle); - return(1); - } - endnetconfig(localhandle); - } else { - if ((clnt = clnt_create(master, YPPASSWDPROG, - YPPASSWDVERS, "udp")) == NULL) { - warnx("failed to contact rpc.yppasswdd on host %s: %s", - master, clnt_spcreateerror("")); - return(1); - } - } - /* - * The yppasswd.x file said `unix authentication required', - * so I added it. This is the only reason it is in here. - * My yppasswdd doesn't use it, but maybe some others out there - * do. --okir - */ - clnt->cl_auth = authunix_create_default(); - - if (suser_override) - status = yppasswdproc_update_master_1(&master_yppasswd, clnt); - else - status = yppasswdproc_update_1(&yppasswd, clnt); - - clnt_geterr(clnt, &err); - - auth_destroy(clnt->cl_auth); - clnt_destroy(clnt); - - if (err.re_status != RPC_SUCCESS || status == NULL || *status) { - errx(1, "failed to change NIS password: %s", - clnt_sperrno(err.re_status)); - } - - printf("\nNIS password has%s been changed on %s.\n", - (err.re_status != RPC_SUCCESS || status == NULL || *status) ? - " not" : "", master); - - return ((err.re_status || status == NULL || *status)); -} -#endif /* YP */ -- cgit v1.1