[1158] in Kerberos-V5-bugs
krb5b4pl3: appl/bsd/krlogind.c: allow login program to be specified on command line
daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Tue Mar 14 11:09:08 1995
From: "Jonathan I. Kamens" <jik@cam.ov.com>
Date: Tue, 14 Mar 1995 11:11:44 -0500
To: krb5-bugs@MIT.EDU
This way, an administrator installing Kerberos on a machine can
install the Kerberos login binary wherever he/she wants, and specify
its location in inetd.conf.
--- appl/bsd/krlogind.c 1995/03/09 20:52:58 1.1
+++ appl/bsd/krlogind.c 1995/03/09 21:28:25 1.2
@@ -247,7 +247,7 @@
#endif
#endif
-#define ARGSTR "rRkKeExXpPD:?"
+#define ARGSTR "rRkKeExXpPD:l:?"
#else /* !KERBEROS */
#define ARGSTR "rRpPD:?"
#define (*des_read) read
@@ -280,6 +280,7 @@
char term[64];
char rhost_name[128];
krb5_principal client;
+char *login_program = LOGIN_PROGRAM;
extern int errno;
int reapchild();
@@ -411,6 +412,9 @@
case 'D':
debug_port = atoi(optarg);
break;
+ case 'l':
+ login_program = optarg;
+ break;
case '?':
default:
usage();
@@ -765,15 +769,15 @@
#endif
#ifdef DO_NOT_USE_K_LOGIN
- execl(LOGIN_PROGRAM, "login", "-r", rhost_name, 0);
+ execl(login_program, "login", "-r", rhost_name, 0);
#else
if (passwd_req)
- execl(LOGIN_PROGRAM, "login","-h", rhost_name, lusername, 0);
+ execl(login_program, "login","-h", rhost_name, lusername, 0);
else
- execl(LOGIN_PROGRAM, "login", "-h", rhost_name, "-e", lusername, 0);
+ execl(login_program, "login", "-h", rhost_name, "-e", lusername, 0);
#endif
- fatalperror(2, LOGIN_PROGRAM, errno);
+ fatalperror(2, login_program, errno);
/*NOTREACHED*/
}
/*
@@ -1398,10 +1402,10 @@
{
#ifdef KERBEROS
syslog(LOG_ERR,
- "usage: klogind [-rRkKxpP] [-D port] or [r/R][k/K][x/e][p/P]logind");
+ "usage: klogind [-rRkKxpP] [-D port] [-l login-program] or [r/R][k/K][x/e][p/P]logind");
#else
syslog(LOG_ERR,
- "usage: rlogind [-rRpP] [-D port] or [r/R][p/P]logind");
+ "usage: rlogind [-rRpP] [-D port] [-l login-program] or [r/R][p/P]logind");
#endif
}