pwd_mkdb: retire legacy v3 db support (-l option)
pwd_mkdb has emitted v4 password database records since 2003 (r113596) in addition to v3, and as of r283981 by default it emitted only v4. As described in r283981, retire the -l legacy option. The -B and -L options were originally added to set the endianness of v3 records emitted by pwd_mkdb, but they also set the db hash endiannes and so have been retained temporarily. Announced on the FreeBSD-Current and FreeBSD-Stable lists. In stable/11 the man page contains a deprecation notice, and pwd_mkdb will emit a deprecation notice if the -l option is specified. Reviewed by: delphij, lidl, rgrimes Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D15144
This commit is contained in:
parent
52f6e3a936
commit
c20dbeb676
@ -28,7 +28,7 @@
|
||||
.\" @(#)pwd_mkdb.8 8.1 (Berkeley) 6/6/93
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd April 22, 2018
|
||||
.Dd April 30, 2018
|
||||
.Dt PWD_MKDB 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -36,7 +36,7 @@
|
||||
.Nd "generate the password databases"
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl BCilLNp
|
||||
.Op Fl BCiLNp
|
||||
.Op Fl d Ar directory
|
||||
.Op Fl s Ar cachesize
|
||||
.Op Fl u Ar username
|
||||
@ -112,31 +112,8 @@ encrypted password and the insecure version has an asterisk (``*'')
|
||||
The databases are used by the C library password routines (see
|
||||
.Xr getpwent 3 ) .
|
||||
.Pp
|
||||
By default,
|
||||
the
|
||||
.Nm
|
||||
utility generates new,
|
||||
machine independent format
|
||||
.Pq v4
|
||||
entries only.
|
||||
For compatibility with
|
||||
.Fx 5.0
|
||||
and earlier releases,
|
||||
the
|
||||
.Fl l
|
||||
option may be specified,
|
||||
which enables generation of legacy format
|
||||
.Pq v3
|
||||
entries.
|
||||
The legacy format entries are endianness dependent.
|
||||
The
|
||||
.Fl l
|
||||
option is deprecated and is not present in
|
||||
.Fx 12.0
|
||||
and later.
|
||||
.Pp
|
||||
The following options may be specified and will affect the
|
||||
generation of legacy entries.
|
||||
The following options affected the generation of legacy entries,
|
||||
and are now deprecated.
|
||||
.Bl -tag -width flag
|
||||
.It Fl B
|
||||
Store data in big-endian format.
|
||||
|
@ -115,26 +115,25 @@ main(int argc, char *argv[])
|
||||
char sbuf2[MAXPATHLEN];
|
||||
char *username;
|
||||
u_int method, methoduid;
|
||||
int Cflag, dflag, iflag, lflag;
|
||||
int Cflag, dflag, iflag;
|
||||
int nblock = 0;
|
||||
|
||||
iflag = dflag = Cflag = lflag = 0;
|
||||
iflag = dflag = Cflag = 0;
|
||||
strcpy(prefix, _PATH_PWD);
|
||||
makeold = 0;
|
||||
username = NULL;
|
||||
oldfp = NULL;
|
||||
while ((ch = getopt(argc, argv, "BCLlNd:ips:u:v")) != -1)
|
||||
while ((ch = getopt(argc, argv, "BCLNd:ips:u:v")) != -1)
|
||||
switch(ch) {
|
||||
case 'B': /* big-endian output */
|
||||
warnx("endiannes options (-B/-L) are deprecated");
|
||||
openinfo.lorder = BIG_ENDIAN;
|
||||
break;
|
||||
case 'C': /* verify only */
|
||||
Cflag = 1;
|
||||
break;
|
||||
case 'l': /* generate legacy entries */
|
||||
lflag = 1;
|
||||
break;
|
||||
case 'L': /* little-endian output */
|
||||
warnx("endiannes options (-B/-L) are deprecated");
|
||||
openinfo.lorder = LITTLE_ENDIAN;
|
||||
break;
|
||||
case 'N': /* do not wait for lock */
|
||||
@ -166,8 +165,6 @@ main(int argc, char *argv[])
|
||||
|
||||
if (argc != 1 || (username && (*username == '+' || *username == '-')))
|
||||
usage();
|
||||
if (lflag)
|
||||
warnx("legacy (v3) database format support is deprecated");
|
||||
|
||||
/*
|
||||
* This could be changed to allow the user to interrupt.
|
||||
@ -472,98 +469,6 @@ main(int argc, char *argv[])
|
||||
if ((sdp->put)(sdp, &key, &sdata, method) == -1)
|
||||
error("put");
|
||||
}
|
||||
|
||||
if (lflag) {
|
||||
/* Create insecure data. (legacy version) */
|
||||
p = buf;
|
||||
COMPACT(pwd.pw_name);
|
||||
COMPACT("*");
|
||||
LSCALAR(pwd.pw_uid);
|
||||
LSCALAR(pwd.pw_gid);
|
||||
LSCALAR(pwd.pw_change);
|
||||
COMPACT(pwd.pw_class);
|
||||
COMPACT(pwd.pw_gecos);
|
||||
COMPACT(pwd.pw_dir);
|
||||
COMPACT(pwd.pw_shell);
|
||||
LSCALAR(pwd.pw_expire);
|
||||
LSCALAR(pwd.pw_fields);
|
||||
data.size = p - buf;
|
||||
|
||||
/* Create secure data. (legacy version) */
|
||||
p = sbuf;
|
||||
COMPACT(pwd.pw_name);
|
||||
COMPACT(pwd.pw_passwd);
|
||||
LSCALAR(pwd.pw_uid);
|
||||
LSCALAR(pwd.pw_gid);
|
||||
LSCALAR(pwd.pw_change);
|
||||
COMPACT(pwd.pw_class);
|
||||
COMPACT(pwd.pw_gecos);
|
||||
COMPACT(pwd.pw_dir);
|
||||
COMPACT(pwd.pw_shell);
|
||||
LSCALAR(pwd.pw_expire);
|
||||
LSCALAR(pwd.pw_fields);
|
||||
sdata.size = p - sbuf;
|
||||
|
||||
/* Store insecure by name. */
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYBYNAME);
|
||||
len = strlen(pwd.pw_name);
|
||||
memmove(tbuf + 1, pwd.pw_name, len);
|
||||
key.size = len + 1;
|
||||
if ((dp->put)(dp, &key, &data, method) == -1)
|
||||
error("put");
|
||||
|
||||
/* Store insecure by number. */
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYBYNUM);
|
||||
store = HTOL(cnt);
|
||||
memmove(tbuf + 1, &store, sizeof(store));
|
||||
key.size = sizeof(store) + 1;
|
||||
if ((dp->put)(dp, &key, &data, method) == -1)
|
||||
error("put");
|
||||
|
||||
/* Store insecure by uid. */
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYBYUID);
|
||||
store = HTOL(pwd.pw_uid);
|
||||
memmove(tbuf + 1, &store, sizeof(store));
|
||||
key.size = sizeof(store) + 1;
|
||||
if ((dp->put)(dp, &key, &data, methoduid) == -1)
|
||||
error("put");
|
||||
|
||||
/* Store secure by name. */
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYBYNAME);
|
||||
len = strlen(pwd.pw_name);
|
||||
memmove(tbuf + 1, pwd.pw_name, len);
|
||||
key.size = len + 1;
|
||||
if ((sdp->put)(sdp, &key, &sdata, method) == -1)
|
||||
error("put");
|
||||
|
||||
/* Store secure by number. */
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYBYNUM);
|
||||
store = HTOL(cnt);
|
||||
memmove(tbuf + 1, &store, sizeof(store));
|
||||
key.size = sizeof(store) + 1;
|
||||
if ((sdp->put)(sdp, &key, &sdata, method) == -1)
|
||||
error("put");
|
||||
|
||||
/* Store secure by uid. */
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYBYUID);
|
||||
store = HTOL(pwd.pw_uid);
|
||||
memmove(tbuf + 1, &store, sizeof(store));
|
||||
key.size = sizeof(store) + 1;
|
||||
if ((sdp->put)(sdp, &key, &sdata, methoduid) == -1)
|
||||
error("put");
|
||||
|
||||
/* Store insecure and secure special plus and special minus */
|
||||
if (pwd.pw_name[0] == '+' || pwd.pw_name[0] == '-') {
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYYPBYNUM);
|
||||
store = HTOL(ypcnt);
|
||||
memmove(tbuf + 1, &store, sizeof(store));
|
||||
key.size = sizeof(store) + 1;
|
||||
if ((dp->put)(dp, &key, &data, method) == -1)
|
||||
error("put");
|
||||
if ((sdp->put)(sdp, &key, &sdata, method) == -1)
|
||||
error("put");
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Create original format password file entry */
|
||||
if (is_comment && makeold){ /* copy comments */
|
||||
@ -593,14 +498,6 @@ main(int argc, char *argv[])
|
||||
error("put");
|
||||
if ((sdp->put)(sdp, &key, &data, method) == -1)
|
||||
error("put");
|
||||
if (lflag) {
|
||||
tbuf[0] = LEGACY_VERSION(_PW_KEYYPENABLED);
|
||||
key.size = 1;
|
||||
if ((dp->put)(dp, &key, &data, method) == -1)
|
||||
error("put");
|
||||
if ((sdp->put)(sdp, &key, &data, method) == -1)
|
||||
error("put");
|
||||
}
|
||||
}
|
||||
|
||||
if ((dp->close)(dp) == -1)
|
||||
|
Loading…
Reference in New Issue
Block a user