From 49fc10f4a2791c4482d2ac1e61985b2067188a19 Mon Sep 17 00:00:00 2001 From: ache Date: Sat, 23 Jun 2001 04:48:59 +0000 Subject: [PATCH] Make the similar changes as in our keyinfo, i.e. allow user to get his own sequence and allow root to get everybody's one. Before this change user can't get his own sequence, root required. --- contrib/opie/opieinfo.c | 26 ++++++++++++++++---------- usr.bin/opieinfo/Makefile | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/contrib/opie/opieinfo.c b/contrib/opie/opieinfo.c index d667a9ae6d04..a5d0d5774216 100644 --- a/contrib/opie/opieinfo.c +++ b/contrib/opie/opieinfo.c @@ -29,6 +29,9 @@ License Agreement applies to this software. Modified at NRL for OPIE 2.0. Written at Bellcore for the S/Key Version 1 software distribution (keyinfo) + +$FreeBSD$ + */ #include "opie_cfg.h" @@ -36,9 +39,6 @@ License Agreement applies to this software. #if HAVE_UNISTD_H #include #endif /* HAVE_UNISTD_H */ -#if HAVE_PWD_H -#include -#endif /* HAVE_PWD_H */ #include "opie.h" /* extern char *optarg; */ @@ -46,12 +46,14 @@ extern int errno, optind; static char *getusername FUNCTION_NOARGS { - struct passwd *p = getpwuid(getuid()); + char *login; - if (!p) - return getlogin(); - - return p->pw_name; + login = getlogin(); + if (login == NULL) { + fprintf(stderr, "Cannot find login name\n"); + exit(1); + } + return login; } int main FUNCTION((argc, argv), int argc AND char *argv[]) @@ -71,9 +73,13 @@ int main FUNCTION((argc, argv), int argc AND char *argv[]) } } - if (optind < argc) + if (optind < argc) { + if (getuid() != 0) { + fprintf(stderr, "Only superuser may get another user's keys\n"); + exit(1); + } username = argv[optind]; - else + } else username = getusername(); if ((i = opielookup(&opie, username)) && (i != 2)) { diff --git a/usr.bin/opieinfo/Makefile b/usr.bin/opieinfo/Makefile index dab590f48133..182659538685 100644 --- a/usr.bin/opieinfo/Makefile +++ b/usr.bin/opieinfo/Makefile @@ -8,6 +8,7 @@ CFLAGS+=-I${OPIE_DIST} DPADD= ${LIBOPIE} ${LIBMD} LDADD= -lopie -lmd +BINMODE=4555 .PATH: ${OPIE_DIST}