singleuser program
Christopher Lott
cml at cis.ohio-state.edu
Sat Dec 31 05:42:12 AEST 1988
Hi,
Here is a quick program, in fact the one referenced by Karl Kleinpaste,
used at OSU to prevent anyone from booting a sun singleuser. It halts the
sun if the passwd is given incorrectly, and never times out.
---------snip, snip----------
/* singleuser.c
* Christopher Lott 870924
* cml at cis.ohio-state.edu
* written for use in root's .profile
* requests the root passwd from the console; halts unix if it fails
* This program placed in the public domain by the author
*/
#include <pwd.h>
#include <stdio.h>
#include <signal.h>
#include <sys/reboot.h>
#define ROOT_UID 0
main ()
{
char *userword, *rootword, *result, salt[3];
struct passwd *pwentry;
char *crypt(), *getpass();
signal(SIGINT, SIG_IGN);
signal(SIGHUP, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGTSTP, SIG_IGN);
pwentry = getpwuid(ROOT_UID); /* get passwd file entry */
rootword = pwentry->pw_passwd;
salt[0] = rootword[0]; /* grab the salt */
salt[1] = rootword[1];
salt[2] = NULL;
userword = getpass ("Password:"); /* get one from console */
result = crypt(userword, salt);
if ( !(strcmp (result, rootword)) ) {
printf ("hi, root person.\n");
exit (0);
}
else {
printf ("Sorry - halting Unix.\n");
sync();
reboot (RB_HALT);
}
}
---------snip, snip----------
More information about the Comp.sys.sun
mailing list