.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "KPWVALID 8" .TH KPWVALID 8 "2021-12-09" "OpenAFS" "AFS Command Reference" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" kpwvalid \- Checks quality of new password .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBkpwvalid\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBkpwvalid\fR command checks the quality of a new password passed to it from the \fBkpasswd\fR or \fBkas setpassword\fR command for the obsolete Authentication Server. It is optional. If it exists, it must reside in the same \s-1AFS\s0 directory as the binaries for the \fBkpasswd\fR and \fBkas\fR command suites (create a symbolic link from the client machine's local disk to this directory). The directory's \s-1ACL\s0 must extend the \f(CW\*(C`a\*(C'\fR (administer) and \&\f(CW\*(C`w\*(C'\fR (write) permissions to the system:administrators group only. These requirements prevent unauthorized users from substituting a spurious \&\fBkpwvalid\fR binary. .PP The \s-1AFS\s0 distribution includes an example \fBkpwvalid\fR program that checks that the password is at least eight characters long; the code for it appears in \*(L"\s-1EXAMPLES\s0\*(R" below. .PP The script or program must accept a sequence of password strings, one per line, on the standard input stream. The first is the current password and is ignored. Each subsequent string is a candidate password to be checked. The program must write the following to the standard output stream for each one: .IP "\(bu" 4 \&\f(CW0\fR (zero) and a newline character to indicate that the password is acceptable. .IP "\(bu" 4 A non-zero decimal number and a newline character to indicate that the password is not acceptable. .PP Further, it must write any error messages only to the standard error stream, not to the standard output stream. .SH "CAUTIONS" .IX Header "CAUTIONS" The \fBkpwvalid\fR command is only used by the obsolete Authentication Server It is provided for sites that have not yet migrated to a Kerberos version 5 \s-1KDC\s0. The Authentication Server and supporting commands, including \&\fBkpwvalid\fR, will be removed in a future version of OpenAFS. .SH "EXAMPLES" .IX Header "EXAMPLES" The following example program, included in the \s-1AFS\s0 distribution, verifies that the requested password includes eight or more characters. .PP .Vb 6 \& #include \& /* prints 0 if the password is long enough, otherwise non\-zero */ \& main() \& { \& char oldpassword[512]; \& char password[512]; \& \& if (fgets(oldpassword, 512, stdin)) \& while (fgets(password, 512, stdin)) { \& if (strlen(password) > 8) { /* password includes a newline */ \& fputs("0\en",stdout); \& fflush(stdout); \& } \& else { \& fputs("Passwords must contain at least 8 characters.\en", \& stderr); \& fputs("1\en",stdout); \& fflush(stdout); \& } \& return 0; \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIkas_setpassword\fR\|(8), \&\fIkpasswd\fR\|(1) .SH "COPYRIGHT" .IX Header "COPYRIGHT" \&\s-1IBM\s0 Corporation 2000. All Rights Reserved. .PP This documentation is covered by the \s-1IBM\s0 Public License Version 1.0. It was converted from \s-1HTML\s0 to \s-1POD\s0 by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.