Reno passwd(1) broken on non-Kerberised systems
Jonathan Stone
jonathan at beta.isor.vuw.ac.nz
Fri Jun 14 12:15:23 AEST 1991
Subject: Reno passwd(1) broken on non-Kerberised systems
Index: /usr/src/usr.bin/passwd.c
Description:
On a Kerberos-less system, the distributed passwd() will not
allow a user to change their own password. Furthermore,
it will not let the superuser change their or anyone else's
password.
Repeat-By:
Issue the passwd command from the shell, as in the examples below:
Script started on Fri Jun 14 13:55:37 1991
nikau> # try and change my own password
#: Command not found.
nikau> passwd
passwd: unknown user passwd.
nikau> passwd jonathan
usage: passwd user
nikau> su
Password:
nikau# passwd jonathan
usage: passwd user
nikau# passwd
passwd: unknown user passwd.
nikau# exit
nikau> exit
Script done on Fri Jun 14 13:57:35 1991
Fix:
At least for systems not running Kerberos, apply
the following patch, and rebuild install /usr/bin/passwd.
An error message for the "-l" switch coul be added
according to taste.
*** /usr/src/usr.bin/passwd/passwd.c Wed Jun 20 12:05:46 1990
--- /usr/vuw/passwd.c Sat Jun 8 03:10:41 1991
***************
*** 73,84 ****
uid = getuid();
uname = getlogin();
- #ifdef KERBEROS
while ((ch = getopt(argc, argv, ARGSTR)) != EOF)
switch (ch) {
/* change local password file */
case 'l':
use_kerberos = 0;
break;
default:
case '?':
--- 73,85 ----
uid = getuid();
uname = getlogin();
while ((ch = getopt(argc, argv, ARGSTR)) != EOF)
switch (ch) {
/* change local password file */
case 'l':
+ #ifdef KERBEROS
use_kerberos = 0;
+ #endif
break;
default:
case '?':
***************
*** 88,94 ****
argc -= optind;
argv += optind;
- #endif
switch(argc) {
case 0:
--- 89,94 ----
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list