earlw@pesnta.UUCP (Earl Wallace ) (06/06/85)
Here is a very simple interface to the /etc/shutdown script that allows users, with access to the system console, to shut the system down for whatever reason (backups, maint. , etc.). Its not great but it does work. The security is ok but hasn't been tested for every little hole. Have fun! -earlw ----------------------------- CUT HERE ----------------------------- /* * special shutdown program for the rest of us - earlw * The executable file should be owned by 'root' with group 'sys' and * mode 6111 */ main() { register char *tty, *user; extern char *getlogin(), *ttyname(), *getcwd(); /* check user */ if (strcmp((user=getlogin()), "root") && strcmp(user, "you") && strcmp(user, "me") && strcmp(user, "thedog") && strcmp(user, "thecat") ) { printf("Sorry %s, ", user); printf("You must be an authorized user to run the "); printf("shutdown program\n"); exit(2); } if (strncmp(getcwd((char *)0, 64), "/", 64)) { printf("You must be in / to run the shutdown program!\n"); exit(3); } if (!(tty=ttyname(0))) { printf("Don't run the shutdown program in the background!\n"); exit(4); } if (strcmp(tty, "/dev/console")) { printf("You must be at the system console to run the "); printf("shutdown program\n"); exit(1); } setgid(0); setuid(0); printf("calling shutdown now...\n"); execlp("/etc/shutdown", "SHUTDOWN", "120", 0); printf("shutdown failed!\n"); exit(0); }